SlideShare a Scribd company logo
1 of 9
Chapter 6
INTRODUCTION TO ROBOT
PROGRAMMING
1
Dr. Mayez Al-Mouhamed
Computer Engineeing Department
King Fahd University of petroleum and Minerals
This chapter introduces the main features of VAL II programming language for the PUMA-
560 robot arm. First, we introduce the way VAL II allows to define the robot locations,
variables, and compound transformations. The later is very important in defining structured
objects. The idea consists of referencing sub-objects using frames attached to the base frame
of the main object. Therefore, moving the composite object leads to update the base frame
while the sub-objects frames are defined in a relative way. Second, the chapter investigate the
motion instructions and their meaning. Some motion primitives generate joint interpolated
motions while others generate straight-line path in the cartesian space. The later motion are
more suitable and predictable but slower.
6.1 The Unimate Puma 560
The Unimate Puma 560 is a compact, computer-controlled robot for medium-to-lightweight
assembly, welding, materials handling, packaging, and inspection applications.
The Series 500 is the most widely used model in the UNIMATE PUMA line of electrically
driven robots. With a 36 inch reach, and 5 pound payload capacity, the PUMA Series 500
robot is designed for assembly and applications requiring high degrees of flexibility and
reliability.
With thousands of units in the field, its capabilities are particularly suited to the electronics
and other industries where light-to-medium weight parts handling or processed functions are
carried out.
VALtm, a revolutionary advance in robot control systems, is used to control and program
PUMA robots. The system uses an LSI-11 as a central processing unit and communicates
with individual joint processors for servo control of robot arm motions. The results are ease in
set-up, high-tolerance repeatability, and greater application versatility.
VALtm combines a sophisticated, easy-to-use robot programming capability with ad-
vanced servo control methods. Intuitive English-language instruction provides fast, efficient
program generation and editing capabilities. All servo-path computations are performed in
2
real time, which makes it possible to interface with sensory-based systems.
With itā€™s high speed, repeatability, and flexibility, the PUMA 500 robot is suited to a wide
range of small parts-handling applications, and VALtm control makes it easy to design
application programs to carry out the most difficult robotic tasks.
Current assembly applications include automotive instrument panels, small electric mo-
tors, printed circuit boards, subassemblies for radios, television sets, appliances and more.
Other applications include packaging functions in the pharmaceutical, personal care, and
food industries. Palletizing of small parts, inspection, and electronic-parts handling in the
computer, aero-space and defense industries round out the present installed base.
Puma stands for Programmable Universal Machine for Assembly. Pumas are probably the
most common robot in university laboratories and designed by Vic Schienman in the mid-
70ā€™s. Unimation PUMA-560 is a 6-R (revolution) type robot. It has 6 degree-of-freedom and
uses DC servo motors as its actuators. The range of these angles from Īø1to Īø6is the following
(320ā—¦, 250ā—¦, 270ā—¦, 280ā—¦, 200ā—¦, 532ā—¦). The corresponding link lengths from L1 to L6 are
(432,432,433,56,56,37.5) mm.
The original controller LSI-11 uses the VAl robot language (Victorā€™s Assembly Language)
to communicate with the AIB (Arm Interface Board) through a bidirectional parallel bus. The
AIB communicates with six digital servo boards over a DEC backplane. These boards are
responsible for the execution of commands, parameter setting, and implementing the position
control loop. They are connected through the backplane to the analog servo boards which
implement nested velocity and current control loops.
However the VAL programming language does not support efficient real-time updating of
the manipulator trajectory based on sensory data (such as from force / torque or vision
sensors). Unimation has confirmed that there is an indocumented bug in the tool mode under
real-time path control. During real-time control, such as alter mode, the controller does not
update the rotation matrix for the tool coordinate system as the robot moves.
The features of the Unimate Puma 560 arm are the following. The arm has up to 6 degrees
of motion with electric DC servo controller. The main computer is a system computer (LSI-
11). It uses the teaching method by using a teach control and/or computer terminal. The
programming language is VAL PLUS or VAL II. The program capacity is 8K CMOS user
memory in VAL PLUS and 24K CMOS user memory in VAL II with options for additional
user memory. The external program storage is a floppy disk. The gripper control is a 4- way
pneumatic solenoid. The power requirement is 110-130 VAC, 50-60 Hz, 500 watts. The
optional accessories are the TTY Terminal, I/O module (8 input/8 output signals, isolated
ac/dc levels) up to 32 I/O capacity, pneumatic gripper without fingers, and special software
packages. The repeatability of motion is +/- 0.004 in. (0.1 mm) with straight line velocity of
49 in/sec. max (1.245m/sec.). The maximum payload for static Load 2.2 lbs. (1.0 kg).
6.2 VAL robot programming
VAL II is a language with which program specifications are related to locations that specify
either position in the cartesian space or frames that are attached to the objects. Information
regarding the operating system environment and the multiprocessor architecture (LSI-11)
under which VAL II is implemented should be developed in the laboratory. There are two
frames used: (1) the world frame, and the (2) tool frame.
The World frame is fixed at the end of link-1 of the robot. For an observator placed on link
1 and looking forward to the robot hand, the Z axis goes up, the Y axis goes forward, and the
X axis goes to the right.
3
The Tool frame is located at the robot hand with its Z axis along the hand forward
direction, its X axis is going to the right of the hand, and its Y axis is going down from the
hand.
1. Robot Locations
A ā€™Pointā€™ or a ā€™Positionā€™ is a cartesian reference (X Y Z) in the work space. A ā€™Locationā€™ is a
point plus an orientation. For example, when executing a motion instruction the robot moves
so that the tool point goes to the specified destination point and the tool frame is oriented to
the specified destination orientation.
1. Location Values
There are data defining the robot locations. To define them, two methods are possible:
(a) Precision Points : Location value is a precision point when the robot location is
represented by the exact individual robot joint angles. The advantage is that we
obtain maximum precision and there is no ambiguity regarding the robot configu-
ration. The drawbacks are that these are robot dependent, i.e. cannot be used for
other robot structures and they cannot be modified.
(b) Transformations: Is a robot independent representation of position and orientation
for the tool. The location consists of (X, Y, Z, O, A, T )inwhich(X, Y, Z) are the
coordinate of the Tool frame origin and angles (O, A, T ) are three Euler angles
defining the orientation of the Tool frame. The Tool frame is located at the robot
hand with its Z axis along the hand, its X axis going to the right of the hand, and
its Y 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 Y Z) that is relative to the base coordinate
of the robot and three angles. For example, to shift 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 ralative to a convoyer belt located relative to the
robot. Change in the coordinate of intermediate sub-objects can be made without
changing the other top ranked frames. These relative tranformations are called
Compound Tranformations. The advantage is that it can be used with other robot.
It can be modified by shifting 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 relative to another. 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.
2. Location Variables
Symbols can be used to reference a location. Two types of variables (scalar and arrays)
are allowed:
(a) Variable names, these are assigned by the user to reference precision points and
transformation. Variable names should start with a letter (Upper case or Lower
case). Examples of location variables:
Valid : P, Feeder, pallet. to. part. 3
4
Invalid: 3p, part-x, hand (reserved)
Precision points must be preceded by (#):
( # pick) is a precision point.
Note : Once location variables are defined, they can
be referenced by any program in the system memory.
(b) Array variables: These are location variables that can be of array type:
Part {I} where I : 0, 65535 and Part{ } is part{0}
Using part in an Integer expression is valid.
3. Defining Variables
(a) Under VALII Operating System
ā€¢ using the teach pendant and recording a series of locations
ā€¢ using HERE command to assign a name to current robot location.
ā€¢ using POINT command to define locations based on other locations or from
component value entered by the user.
(b) During Program Execution
ā€¢ Using HERE command
ā€¢ Using SET command to give a value to a location variable.
6.2.2 Compound transformation
The objective of using compound transformation is to represent the robot position and ori-
entation relative to object positions and orientations. For example, the instruction
MOVE plate:object:grasp
where (grasp) is a location relative to (object) which is a location relative to (plate). Location
(plate) is relative to robot base frame of reference.
Another example is the instruction
APPROS base:plate:object:grasp:Trans(0,0,0,-90,90,0)
where APPROS is a location function, Trans(0,0,0,-90,90,0) is a compound transformation,
and base is the robot base frame. We note that the order of these transformations is crucial
and positioning errors may occur because of cumulative computational errors.
The Relative Transformations are defined as follows. Location ā€™plateā€™ is defined using
teach Pendant that allows moving the robot to location plate and using:
HERE plate
which defines the position and orientation of the transformation plate, next the tool (robot)
is located at object:
HERE plate: object
5
which sets the relative transformation object relative to plate, finally:
HERE plate: object: grasp
Using separate command, assuming plate and object were already defined:
MOVE plate: object: grasp !
Where ā€!ā€ indicate external references plate and object.
We now consider the Computational considerations of these instructions. Consider the
following two,set of instructions:
APPRO plate:object:grasp,100.0
MOVE plate:object:grasp
Here the robot goes to a location approaching location (plate:object:grasp) by a backward
translation of 100 mm with respect to the Z axis.
This set requires computing the transformation twice, therefore, the following sequence
requires less computing operations:
SET X = plate:object:grasp
APPRO X, 100.0
MOVE X
where (plate:object:grasp) will be evaluated only once
3. VAL II instructions
1. Format of an instruction:
<Step Number> {<label> < space >}{< Instruct >}{<space >}{< comment >}
where (step Number) is provided by Val II, and (Instruct) is to be < Instr. name >
{<space >< arguments >}.
2. Assignments
<variable> = <value>
where (value) is real or integer constant or arithmetic expression. Ex : n = n + 1,
X =radius*SIN(a)
3. Decomposition
DECOMPOSE <array name> { } = <Location>
where the location consists of (X, Y, Z, O, A, T )inwhich(X, Y, Z) are the coordinate of
the Tool frame origin and angles (O, A, T ) are three Euler angles defining the orienta-
tion of the Tool frame. The Tool frame is located at the robot hand with its Z axis along
the hand, its X axis going to the right of the hand, and its Y 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. To manipulate the above data we may use the following
example:
6
DECOMPOSE X{ } = point
where X{1, 2, .., 6} = {XY ZOAT} of location point. Assume (#ref) then (DECOM-
POSE X[]= #ref) stores the components into x[] so that to index them. The components
can then be used as (MOVE #ppoint(X[0],...,X[5])).
4. Transformation
The syntax is (TRANS(exp1,...,exp6)) like in the following instruction:
MOVE frame:TRANS(r*cos(a),r*sin(a),0,90,-90,0) or
SET X = frame:TRANS(r*cos(a),r*sin(a),0,90,-90,0)
where (frame) is a transformation defining the position of the center of a cercle, (r) is
the radius, and (a) id the angle. Another form is the (STRANS <array name> { })
where (array name) is to receive the robot hand data. For example: STRANS X{ }
produces the array X such that the first 9 components consists of the orientation matrix
and the last three components consists of the cartesian position.
5. Location variable assignments
(a) HERE < location var>
Allows copying the robot coordinate into a variable.
Ex1: (HERE part) where (part) becomes the current Robot location
Ex2: (HERE #part) where (#part) becomes the current Robot precision point
(b) SET <location var> = <location value>
Generally <location var > is a compound obj(1) : obj(2) : ... : obj(k) which should
be previously defined. obj(i) is set relative to obj(i + 1) using <loaction variable>.
Ex. SET #ref = #ppoint(exp1, ..., exp6)
EX. SET picks = HERE: Shift
sets picks equal to transf. shift relative to current
robot location (HERE)
SET # place = # post
precision point ā€ # placeā€ becomes = that of ā€ # postā€
6. Motion Instructions
(a) Move <location>
Moves using joint interpolated motion (J.I.M), in the joint space, to a destination
specified as a location or a precision point.
Ex1: MOVE # picks
moves J.I.M. to precision point # picks
MOVE pallet
moves J.I.M. to location pallet
Ex2: MOVE #ppoint(exp1,exp2, ...,exp6)
7
Ex3: Here #ref
DECOMPOSE X[]= #ref
MOVE #ppoint(X[0],...,X[5])
(b) MOVET <location>, <hand opening>
moves J.I.M. to (location) and hand opening
EX. MOVET part1, Hand-5
moves J.I.M. to (part 1), and Hand Hand-5
(c) MOVES <location>
moves on a straight-line path (SLP) to ā€Locationā€
Ex. MOVES place
(d) MOVEST <location> , <hand opening>
moves SLP and hand opening (mm)
EX. MOVEST part # , 25
moves SLP and hand 26 mm
(e) APPRO <location>, <Distance>
moves J.I.M. to Location - (Distance)
Ex. APPRO place, offset
moves J.I.M. to place, only z component to place
is affected by (- offset).
APPROS <location>, <Distance>
moves S.L.P. to Location - (Distance)
(f) DEPART < Distance >
moves J.I.M. from current robot location backs
by (Distance)
Distance > 0 .... > backs Z axis
Distance < 0 .... > forward Z axis
(g) DEPARTS <Distance>
moves SLP from current robot location backs (Distance)Z.
4. VAL II structured construct
1. The case structure Allows selecting actions depending on external conditions:
CASE <exp1> OF
VALUE <exp> {,...<exp>}: <group of steps>
VALUE <exp> {,...<exp>}: <group ofsteps>
{ANY} <group of steps> END
Description:
(a) <exp 1> is evaluated, let Val be its value,
8
(b) All the <exp> stat. following VALUE are evaluated, if any of these returns a value
equal to Val, then the <group of steps> is executed and control is transferred to
statement following the END.
(c) If there is no <exp> whose value matches with Val and if an ANY statement is
included, then the <group of steps> following ANY is executed and control is
transferred to the statement following the END.
Example: CASE INT(X) OF
VALUE 0, 2,4, 6,8, 10
TYPE ā€The number is evenā€
VALUE 1,3,5,7,9
TYPE ā€The number is oddā€
ANY
TYPE ā€The number is < 0 or > 10ā€
END
2. DO-UNTIL DO
{< group of steps >}
UNTIL <logical exp>
(a) The <group of steps> is executed as long as <logical exp> is false.
(b) When <log. exp> is true, then control is transferred to the statement following
the END.
3. FOR <log Var.> = <initial> TO <final> {STEP increm.>}
FOR part = 1 TO row.length
CALL move.part
SET hole = SHIFT (hole by 100,0,0)
END
This assumes that (move.part) is a subroutine to pitch up a part and it down at the
location ā€holeā€.
4. IF <log. exp> THEN
<group 1 of steps>
{ELSE
<group 2 of steps>}
END
5. WHILE
<logical exp> DO
{<group of steps> } END
9
Exercises
1. Give example of compound transformations and explain their benefits in manipulating
an object such as a cup
2. Find the mathematical transformations that are required to perform the following type
of motions:
(a) Joint interpolated motion
(b) Straight-line path in the cartesian space.
3. A robot is assigned to pick blocks off of a conveyer belt and deposit them in a pallet with
three-by-three array of positions for the blocks. Write a VAL II program to perform this
operations.
4. A robot gripper is equipped with three proximity sensors: left (SL), right (SR), and
hand(SH). All three sensors can be read by VALII and give binary values.
5. If an object is in front of a sensor, then part of the emitted light is reflected on conse-
quently the value returned is logic 1. Otherwise it returns O. The opening or closing of
the robot hand can be programmed in an incremental way. Write a program in VAL II
language to perform the following:
(a) Search on the workspace table (L1, L2) an object. For this left and right motions
will be required until either SR or SL return a 1.
(b) Center the robot hand on the object: moves right or left (if SR = 1 or SL = 1,
respectively) until both sensors return 0. Then close the gripper by āˆ†d until either
SR = 1 or SL = 1. If both sensors generate 1 then exit.
(c) Now the robot hand is centered in front of the object. Moves to the object and
check all three sensors. If only Sr or SL return 1, then center again. If only SH
returns 1, then grasp the object and exit (success.)

More Related Content

What's hot

ROBOTICS- IMPLEMENTATION AND ROBOT ECONOMICS
ROBOTICS- IMPLEMENTATION AND ROBOT ECONOMICSROBOTICS- IMPLEMENTATION AND ROBOT ECONOMICS
ROBOTICS- IMPLEMENTATION AND ROBOT ECONOMICSTAMILMECHKIT
Ā 
Ec6003 robotics and automation notes
Ec6003   robotics and automation notesEc6003   robotics and automation notes
Ec6003 robotics and automation notesJAIGANESH SEKAR
Ā 
Unit-I Robotics
Unit-I RoboticsUnit-I Robotics
Unit-I RoboticsMuthukumar V
Ā 
An introduction to robotics classification, kinematics and hardware
An introduction to robotics classification, kinematics and hardwareAn introduction to robotics classification, kinematics and hardware
An introduction to robotics classification, kinematics and hardwareNikhil Shrivas
Ā 
ROBOTICS-ROBOT KINEMATICS AND ROBOT PROGRAMMING
ROBOTICS-ROBOT KINEMATICS AND ROBOT PROGRAMMINGROBOTICS-ROBOT KINEMATICS AND ROBOT PROGRAMMING
ROBOTICS-ROBOT KINEMATICS AND ROBOT PROGRAMMINGTAMILMECHKIT
Ā 
Unit IV robotics-- Kinematics
Unit IV robotics-- KinematicsUnit IV robotics-- Kinematics
Unit IV robotics-- KinematicsDr.G.Saravanan
Ā 
02-Chapter_2_Robot_Work_Cell_Design_and_Control_Final.pdf
02-Chapter_2_Robot_Work_Cell_Design_and_Control_Final.pdf02-Chapter_2_Robot_Work_Cell_Design_and_Control_Final.pdf
02-Chapter_2_Robot_Work_Cell_Design_and_Control_Final.pdfRahbiMalek
Ā 
Robotics and machine vision system
Robotics and machine vision systemRobotics and machine vision system
Robotics and machine vision systemGowsick Subramaniam
Ā 
Robotics End Effector
Robotics End EffectorRobotics End Effector
Robotics End EffectorYasodharan R
Ā 
Industrial robots
Industrial robotsIndustrial robots
Industrial robotsOhgoma
Ā 
Robotics ch 4 robot dynamics
Robotics ch 4 robot dynamicsRobotics ch 4 robot dynamics
Robotics ch 4 robot dynamicsCharlton Inao
Ā 
Jacobian | velocity and static forces
Jacobian | velocity and static forcesJacobian | velocity and static forces
Jacobian | velocity and static forcesAbrar Mohamed
Ā 
Lecture 1 trajectory generation
Lecture 1 trajectory generation Lecture 1 trajectory generation
Lecture 1 trajectory generation cairo university
Ā 
Industrial robotics
Industrial roboticsIndustrial robotics
Industrial roboticsjjenishmech
Ā 
Robot programming , accuracy ,repeatability and application
Robot programming , accuracy ,repeatability  and applicationRobot programming , accuracy ,repeatability  and application
Robot programming , accuracy ,repeatability and applicationvishaldattKohir1
Ā 

What's hot (20)

ROBOTICS- IMPLEMENTATION AND ROBOT ECONOMICS
ROBOTICS- IMPLEMENTATION AND ROBOT ECONOMICSROBOTICS- IMPLEMENTATION AND ROBOT ECONOMICS
ROBOTICS- IMPLEMENTATION AND ROBOT ECONOMICS
Ā 
Ec6003 robotics and automation notes
Ec6003   robotics and automation notesEc6003   robotics and automation notes
Ec6003 robotics and automation notes
Ā 
Robot Programming
Robot ProgrammingRobot Programming
Robot Programming
Ā 
Unit-I Robotics
Unit-I RoboticsUnit-I Robotics
Unit-I Robotics
Ā 
An introduction to robotics classification, kinematics and hardware
An introduction to robotics classification, kinematics and hardwareAn introduction to robotics classification, kinematics and hardware
An introduction to robotics classification, kinematics and hardware
Ā 
ROBOTICS-ROBOT KINEMATICS AND ROBOT PROGRAMMING
ROBOTICS-ROBOT KINEMATICS AND ROBOT PROGRAMMINGROBOTICS-ROBOT KINEMATICS AND ROBOT PROGRAMMING
ROBOTICS-ROBOT KINEMATICS AND ROBOT PROGRAMMING
Ā 
Unit IV robotics-- Kinematics
Unit IV robotics-- KinematicsUnit IV robotics-- Kinematics
Unit IV robotics-- Kinematics
Ā 
Industrial robotics
Industrial roboticsIndustrial robotics
Industrial robotics
Ā 
Robot Configuration - 1
Robot Configuration - 1Robot Configuration - 1
Robot Configuration - 1
Ā 
02-Chapter_2_Robot_Work_Cell_Design_and_Control_Final.pdf
02-Chapter_2_Robot_Work_Cell_Design_and_Control_Final.pdf02-Chapter_2_Robot_Work_Cell_Design_and_Control_Final.pdf
02-Chapter_2_Robot_Work_Cell_Design_and_Control_Final.pdf
Ā 
Robotics and machine vision system
Robotics and machine vision systemRobotics and machine vision system
Robotics and machine vision system
Ā 
Robotics End Effector
Robotics End EffectorRobotics End Effector
Robotics End Effector
Ā 
Automated Production Lines
Automated Production LinesAutomated Production Lines
Automated Production Lines
Ā 
Industrial robots
Industrial robotsIndustrial robots
Industrial robots
Ā 
Robotics ch 4 robot dynamics
Robotics ch 4 robot dynamicsRobotics ch 4 robot dynamics
Robotics ch 4 robot dynamics
Ā 
Jacobian | velocity and static forces
Jacobian | velocity and static forcesJacobian | velocity and static forces
Jacobian | velocity and static forces
Ā 
Robotics arm configurations
Robotics arm configurationsRobotics arm configurations
Robotics arm configurations
Ā 
Lecture 1 trajectory generation
Lecture 1 trajectory generation Lecture 1 trajectory generation
Lecture 1 trajectory generation
Ā 
Industrial robotics
Industrial roboticsIndustrial robotics
Industrial robotics
Ā 
Robot programming , accuracy ,repeatability and application
Robot programming , accuracy ,repeatability  and applicationRobot programming , accuracy ,repeatability  and application
Robot programming , accuracy ,repeatability and application
Ā 

Similar to Robo programming val converted

Industrial Robotics Chap 01 Fundamentals
Industrial  Robotics  Chap 01  FundamentalsIndustrial  Robotics  Chap 01  Fundamentals
Industrial Robotics Chap 01 FundamentalsKevin Carvalho
Ā 
Systems Description Document v4
Systems Description Document v4Systems Description Document v4
Systems Description Document v4Erin Nelson
Ā 
Robotics ICMMT2015
Robotics ICMMT2015Robotics ICMMT2015
Robotics ICMMT2015rahul dev basu
Ā 
Robotics ICMMT2015
Robotics ICMMT2015Robotics ICMMT2015
Robotics ICMMT2015rahul dev basu
Ā 
UNIT -5-0001235689- INDUSTRIAL ROBOTICS .ppt
UNIT -5-0001235689- INDUSTRIAL ROBOTICS .pptUNIT -5-0001235689- INDUSTRIAL ROBOTICS .ppt
UNIT -5-0001235689- INDUSTRIAL ROBOTICS .pptdharma raja`
Ā 
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...IRJET Journal
Ā 
Industrial Automated Robots Working and explanation
Industrial Automated Robots Working and explanationIndustrial Automated Robots Working and explanation
Industrial Automated Robots Working and explanationSarmadFarooq5
Ā 
06. industrial robotics
06. industrial robotics06. industrial robotics
06. industrial roboticsrichard visey
Ā 
Unit IV Solved Question Bank- Robotics Engineering
Unit IV  Solved Question Bank-  Robotics EngineeringUnit IV  Solved Question Bank-  Robotics Engineering
Unit IV Solved Question Bank- Robotics EngineeringSanjay Singh
Ā 
ABB training report
ABB training reportABB training report
ABB training reportShahid Faizee
Ā 
Multirotor control ua vs based on fuzzy logic
Multirotor control ua vs based on fuzzy logicMultirotor control ua vs based on fuzzy logic
Multirotor control ua vs based on fuzzy logicAntonio Chica
Ā 
Module 1Lecture 2 Components & Applications of Automation System.pptx
Module 1Lecture 2 Components & Applications of Automation System.pptxModule 1Lecture 2 Components & Applications of Automation System.pptx
Module 1Lecture 2 Components & Applications of Automation System.pptxKhalil Alhatab
Ā 
oie751-robotics-unit-1-220122042916.pdf
oie751-robotics-unit-1-220122042916.pdfoie751-robotics-unit-1-220122042916.pdf
oie751-robotics-unit-1-220122042916.pdfRATHESHPRIYANK
Ā 
ROBOTICS-Me8099 -unit-1.ppT
ROBOTICS-Me8099 -unit-1.ppTROBOTICS-Me8099 -unit-1.ppT
ROBOTICS-Me8099 -unit-1.ppTdinesh babu
Ā 

Similar to Robo programming val converted (20)

Industrial Robotics Chap 01 Fundamentals
Industrial  Robotics  Chap 01  FundamentalsIndustrial  Robotics  Chap 01  Fundamentals
Industrial Robotics Chap 01 Fundamentals
Ā 
Systems Description Document v4
Systems Description Document v4Systems Description Document v4
Systems Description Document v4
Ā 
Robocup2006
Robocup2006Robocup2006
Robocup2006
Ā 
Robotics my seminar
Robotics my seminarRobotics my seminar
Robotics my seminar
Ā 
Robotics ICMMT2015
Robotics ICMMT2015Robotics ICMMT2015
Robotics ICMMT2015
Ā 
Robotics ICMMT2015
Robotics ICMMT2015Robotics ICMMT2015
Robotics ICMMT2015
Ā 
UNIT -5-0001235689- INDUSTRIAL ROBOTICS .ppt
UNIT -5-0001235689- INDUSTRIAL ROBOTICS .pptUNIT -5-0001235689- INDUSTRIAL ROBOTICS .ppt
UNIT -5-0001235689- INDUSTRIAL ROBOTICS .ppt
Ā 
Industrial robotics.pptx
Industrial robotics.pptxIndustrial robotics.pptx
Industrial robotics.pptx
Ā 
Project Report
Project ReportProject Report
Project Report
Ā 
L010338894
L010338894L010338894
L010338894
Ā 
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...
Ā 
Industrial Automated Robots Working and explanation
Industrial Automated Robots Working and explanationIndustrial Automated Robots Working and explanation
Industrial Automated Robots Working and explanation
Ā 
06. industrial robotics
06. industrial robotics06. industrial robotics
06. industrial robotics
Ā 
Unit IV Solved Question Bank- Robotics Engineering
Unit IV  Solved Question Bank-  Robotics EngineeringUnit IV  Solved Question Bank-  Robotics Engineering
Unit IV Solved Question Bank- Robotics Engineering
Ā 
ABB training report
ABB training reportABB training report
ABB training report
Ā 
Multirotor control ua vs based on fuzzy logic
Multirotor control ua vs based on fuzzy logicMultirotor control ua vs based on fuzzy logic
Multirotor control ua vs based on fuzzy logic
Ā 
Robotics
RoboticsRobotics
Robotics
Ā 
Module 1Lecture 2 Components & Applications of Automation System.pptx
Module 1Lecture 2 Components & Applications of Automation System.pptxModule 1Lecture 2 Components & Applications of Automation System.pptx
Module 1Lecture 2 Components & Applications of Automation System.pptx
Ā 
oie751-robotics-unit-1-220122042916.pdf
oie751-robotics-unit-1-220122042916.pdfoie751-robotics-unit-1-220122042916.pdf
oie751-robotics-unit-1-220122042916.pdf
Ā 
ROBOTICS-Me8099 -unit-1.ppT
ROBOTICS-Me8099 -unit-1.ppTROBOTICS-Me8099 -unit-1.ppT
ROBOTICS-Me8099 -unit-1.ppT
Ā 

More from Jishnu Jish

Module6rob prog mr302_mtr_ncerc
Module6rob prog mr302_mtr_ncercModule6rob prog mr302_mtr_ncerc
Module6rob prog mr302_mtr_ncercJishnu Jish
Ā 
Mod6,mr302,mtr converted
Mod6,mr302,mtr convertedMod6,mr302,mtr converted
Mod6,mr302,mtr convertedJishnu Jish
Ā 
Robot programming2-converted
Robot programming2-convertedRobot programming2-converted
Robot programming2-convertedJishnu Jish
Ā 
Mr302:module 4:mtr,ncerc,JVP
Mr302:module 4:mtr,ncerc,JVPMr302:module 4:mtr,ncerc,JVP
Mr302:module 4:mtr,ncerc,JVPJishnu Jish
Ā 
Mr302,module5,mtr,ncerc,JVP
Mr302,module5,mtr,ncerc,JVPMr302,module5,mtr,ncerc,JVP
Mr302,module5,mtr,ncerc,JVPJishnu Jish
Ā 
Mr302 module 4-mtr_ncerc,JVP
Mr302 module 4-mtr_ncerc,JVPMr302 module 4-mtr_ncerc,JVP
Mr302 module 4-mtr_ncerc,JVPJishnu Jish
Ā 
Module 3,mr302,mtr,ncerc,JVP
Module 3,mr302,mtr,ncerc,JVPModule 3,mr302,mtr,ncerc,JVP
Module 3,mr302,mtr,ncerc,JVPJishnu Jish
Ā 

More from Jishnu Jish (7)

Module6rob prog mr302_mtr_ncerc
Module6rob prog mr302_mtr_ncercModule6rob prog mr302_mtr_ncerc
Module6rob prog mr302_mtr_ncerc
Ā 
Mod6,mr302,mtr converted
Mod6,mr302,mtr convertedMod6,mr302,mtr converted
Mod6,mr302,mtr converted
Ā 
Robot programming2-converted
Robot programming2-convertedRobot programming2-converted
Robot programming2-converted
Ā 
Mr302:module 4:mtr,ncerc,JVP
Mr302:module 4:mtr,ncerc,JVPMr302:module 4:mtr,ncerc,JVP
Mr302:module 4:mtr,ncerc,JVP
Ā 
Mr302,module5,mtr,ncerc,JVP
Mr302,module5,mtr,ncerc,JVPMr302,module5,mtr,ncerc,JVP
Mr302,module5,mtr,ncerc,JVP
Ā 
Mr302 module 4-mtr_ncerc,JVP
Mr302 module 4-mtr_ncerc,JVPMr302 module 4-mtr_ncerc,JVP
Mr302 module 4-mtr_ncerc,JVP
Ā 
Module 3,mr302,mtr,ncerc,JVP
Module 3,mr302,mtr,ncerc,JVPModule 3,mr302,mtr,ncerc,JVP
Module 3,mr302,mtr,ncerc,JVP
Ā 

Recently uploaded

Visit to a blind student's schoolšŸ§‘ā€šŸ¦ÆšŸ§‘ā€šŸ¦Æ(community medicine)
Visit to a blind student's schoolšŸ§‘ā€šŸ¦ÆšŸ§‘ā€šŸ¦Æ(community medicine)Visit to a blind student's schoolšŸ§‘ā€šŸ¦ÆšŸ§‘ā€šŸ¦Æ(community medicine)
Visit to a blind student's schoolšŸ§‘ā€šŸ¦ÆšŸ§‘ā€šŸ¦Æ(community medicine)lakshayb543
Ā 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
Ā 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
Ā 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
Ā 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
Ā 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
Ā 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
Ā 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
Ā 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
Ā 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
Ā 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
Ā 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A BeƱa
Ā 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxChelloAnnAsuncion2
Ā 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
Ā 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
Ā 

Recently uploaded (20)

Visit to a blind student's schoolšŸ§‘ā€šŸ¦ÆšŸ§‘ā€šŸ¦Æ(community medicine)
Visit to a blind student's schoolšŸ§‘ā€šŸ¦ÆšŸ§‘ā€šŸ¦Æ(community medicine)Visit to a blind student's schoolšŸ§‘ā€šŸ¦ÆšŸ§‘ā€šŸ¦Æ(community medicine)
Visit to a blind student's schoolšŸ§‘ā€šŸ¦ÆšŸ§‘ā€šŸ¦Æ(community medicine)
Ā 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
Ā 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
Ā 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
Ā 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
Ā 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
Ā 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
Ā 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
Ā 
Model Call Girl in Tilak Nagar Delhi reach out to us at šŸ”9953056974šŸ”
Model Call Girl in Tilak Nagar Delhi reach out to us at šŸ”9953056974šŸ”Model Call Girl in Tilak Nagar Delhi reach out to us at šŸ”9953056974šŸ”
Model Call Girl in Tilak Nagar Delhi reach out to us at šŸ”9953056974šŸ”
Ā 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
Ā 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
Ā 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
Ā 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
Ā 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
Ā 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
Ā 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
Ā 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
Ā 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Ā 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
Ā 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Ā 

Robo programming val converted

  • 1. Chapter 6 INTRODUCTION TO ROBOT PROGRAMMING 1 Dr. Mayez Al-Mouhamed Computer Engineeing Department King Fahd University of petroleum and Minerals This chapter introduces the main features of VAL II programming language for the PUMA- 560 robot arm. First, we introduce the way VAL II allows to define the robot locations, variables, and compound transformations. The later is very important in defining structured objects. The idea consists of referencing sub-objects using frames attached to the base frame of the main object. Therefore, moving the composite object leads to update the base frame while the sub-objects frames are defined in a relative way. Second, the chapter investigate the motion instructions and their meaning. Some motion primitives generate joint interpolated motions while others generate straight-line path in the cartesian space. The later motion are more suitable and predictable but slower. 6.1 The Unimate Puma 560 The Unimate Puma 560 is a compact, computer-controlled robot for medium-to-lightweight assembly, welding, materials handling, packaging, and inspection applications. The Series 500 is the most widely used model in the UNIMATE PUMA line of electrically driven robots. With a 36 inch reach, and 5 pound payload capacity, the PUMA Series 500 robot is designed for assembly and applications requiring high degrees of flexibility and reliability. With thousands of units in the field, its capabilities are particularly suited to the electronics and other industries where light-to-medium weight parts handling or processed functions are carried out. VALtm, a revolutionary advance in robot control systems, is used to control and program PUMA robots. The system uses an LSI-11 as a central processing unit and communicates with individual joint processors for servo control of robot arm motions. The results are ease in set-up, high-tolerance repeatability, and greater application versatility. VALtm combines a sophisticated, easy-to-use robot programming capability with ad- vanced servo control methods. Intuitive English-language instruction provides fast, efficient program generation and editing capabilities. All servo-path computations are performed in
  • 2. 2 real time, which makes it possible to interface with sensory-based systems. With itā€™s high speed, repeatability, and flexibility, the PUMA 500 robot is suited to a wide range of small parts-handling applications, and VALtm control makes it easy to design application programs to carry out the most difficult robotic tasks. Current assembly applications include automotive instrument panels, small electric mo- tors, printed circuit boards, subassemblies for radios, television sets, appliances and more. Other applications include packaging functions in the pharmaceutical, personal care, and food industries. Palletizing of small parts, inspection, and electronic-parts handling in the computer, aero-space and defense industries round out the present installed base. Puma stands for Programmable Universal Machine for Assembly. Pumas are probably the most common robot in university laboratories and designed by Vic Schienman in the mid- 70ā€™s. Unimation PUMA-560 is a 6-R (revolution) type robot. It has 6 degree-of-freedom and uses DC servo motors as its actuators. The range of these angles from Īø1to Īø6is the following (320ā—¦, 250ā—¦, 270ā—¦, 280ā—¦, 200ā—¦, 532ā—¦). The corresponding link lengths from L1 to L6 are (432,432,433,56,56,37.5) mm. The original controller LSI-11 uses the VAl robot language (Victorā€™s Assembly Language) to communicate with the AIB (Arm Interface Board) through a bidirectional parallel bus. The AIB communicates with six digital servo boards over a DEC backplane. These boards are responsible for the execution of commands, parameter setting, and implementing the position control loop. They are connected through the backplane to the analog servo boards which implement nested velocity and current control loops. However the VAL programming language does not support efficient real-time updating of the manipulator trajectory based on sensory data (such as from force / torque or vision sensors). Unimation has confirmed that there is an indocumented bug in the tool mode under real-time path control. During real-time control, such as alter mode, the controller does not update the rotation matrix for the tool coordinate system as the robot moves. The features of the Unimate Puma 560 arm are the following. The arm has up to 6 degrees of motion with electric DC servo controller. The main computer is a system computer (LSI- 11). It uses the teaching method by using a teach control and/or computer terminal. The programming language is VAL PLUS or VAL II. The program capacity is 8K CMOS user memory in VAL PLUS and 24K CMOS user memory in VAL II with options for additional user memory. The external program storage is a floppy disk. The gripper control is a 4- way pneumatic solenoid. The power requirement is 110-130 VAC, 50-60 Hz, 500 watts. The optional accessories are the TTY Terminal, I/O module (8 input/8 output signals, isolated ac/dc levels) up to 32 I/O capacity, pneumatic gripper without fingers, and special software packages. The repeatability of motion is +/- 0.004 in. (0.1 mm) with straight line velocity of 49 in/sec. max (1.245m/sec.). The maximum payload for static Load 2.2 lbs. (1.0 kg). 6.2 VAL robot programming VAL II is a language with which program specifications are related to locations that specify either position in the cartesian space or frames that are attached to the objects. Information regarding the operating system environment and the multiprocessor architecture (LSI-11) under which VAL II is implemented should be developed in the laboratory. There are two frames used: (1) the world frame, and the (2) tool frame. The World frame is fixed at the end of link-1 of the robot. For an observator placed on link 1 and looking forward to the robot hand, the Z axis goes up, the Y axis goes forward, and the X axis goes to the right.
  • 3. 3 The Tool frame is located at the robot hand with its Z axis along the hand forward direction, its X axis is going to the right of the hand, and its Y axis is going down from the hand. 1. Robot Locations A ā€™Pointā€™ or a ā€™Positionā€™ is a cartesian reference (X Y Z) in the work space. A ā€™Locationā€™ is a point plus an orientation. For example, when executing a motion instruction the robot moves so that the tool point goes to the specified destination point and the tool frame is oriented to the specified destination orientation. 1. Location Values There are data defining the robot locations. To define them, two methods are possible: (a) Precision Points : Location value is a precision point when the robot location is represented by the exact individual robot joint angles. The advantage is that we obtain maximum precision and there is no ambiguity regarding the robot configu- ration. The drawbacks are that these are robot dependent, i.e. cannot be used for other robot structures and they cannot be modified. (b) Transformations: Is a robot independent representation of position and orientation for the tool. The location consists of (X, Y, Z, O, A, T )inwhich(X, Y, Z) are the coordinate of the Tool frame origin and angles (O, A, T ) are three Euler angles defining the orientation of the Tool frame. The Tool frame is located at the robot hand with its Z axis along the hand, its X axis going to the right of the hand, and its Y 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 Y Z) that is relative to the base coordinate of the robot and three angles. For example, to shift 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 ralative to a convoyer belt located relative to the robot. Change in the coordinate of intermediate sub-objects can be made without changing the other top ranked frames. These relative tranformations are called Compound Tranformations. The advantage is that it can be used with other robot. It can be modified by shifting 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 relative to another. 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. 2. Location Variables Symbols can be used to reference a location. Two types of variables (scalar and arrays) are allowed: (a) Variable names, these are assigned by the user to reference precision points and transformation. Variable names should start with a letter (Upper case or Lower case). Examples of location variables: Valid : P, Feeder, pallet. to. part. 3
  • 4. 4 Invalid: 3p, part-x, hand (reserved) Precision points must be preceded by (#): ( # pick) is a precision point. Note : Once location variables are defined, they can be referenced by any program in the system memory. (b) Array variables: These are location variables that can be of array type: Part {I} where I : 0, 65535 and Part{ } is part{0} Using part in an Integer expression is valid. 3. Defining Variables (a) Under VALII Operating System ā€¢ using the teach pendant and recording a series of locations ā€¢ using HERE command to assign a name to current robot location. ā€¢ using POINT command to define locations based on other locations or from component value entered by the user. (b) During Program Execution ā€¢ Using HERE command ā€¢ Using SET command to give a value to a location variable. 6.2.2 Compound transformation The objective of using compound transformation is to represent the robot position and ori- entation relative to object positions and orientations. For example, the instruction MOVE plate:object:grasp where (grasp) is a location relative to (object) which is a location relative to (plate). Location (plate) is relative to robot base frame of reference. Another example is the instruction APPROS base:plate:object:grasp:Trans(0,0,0,-90,90,0) where APPROS is a location function, Trans(0,0,0,-90,90,0) is a compound transformation, and base is the robot base frame. We note that the order of these transformations is crucial and positioning errors may occur because of cumulative computational errors. The Relative Transformations are defined as follows. Location ā€™plateā€™ is defined using teach Pendant that allows moving the robot to location plate and using: HERE plate which defines the position and orientation of the transformation plate, next the tool (robot) is located at object: HERE plate: object
  • 5. 5 which sets the relative transformation object relative to plate, finally: HERE plate: object: grasp Using separate command, assuming plate and object were already defined: MOVE plate: object: grasp ! Where ā€!ā€ indicate external references plate and object. We now consider the Computational considerations of these instructions. Consider the following two,set of instructions: APPRO plate:object:grasp,100.0 MOVE plate:object:grasp Here the robot goes to a location approaching location (plate:object:grasp) by a backward translation of 100 mm with respect to the Z axis. This set requires computing the transformation twice, therefore, the following sequence requires less computing operations: SET X = plate:object:grasp APPRO X, 100.0 MOVE X where (plate:object:grasp) will be evaluated only once 3. VAL II instructions 1. Format of an instruction: <Step Number> {<label> < space >}{< Instruct >}{<space >}{< comment >} where (step Number) is provided by Val II, and (Instruct) is to be < Instr. name > {<space >< arguments >}. 2. Assignments <variable> = <value> where (value) is real or integer constant or arithmetic expression. Ex : n = n + 1, X =radius*SIN(a) 3. Decomposition DECOMPOSE <array name> { } = <Location> where the location consists of (X, Y, Z, O, A, T )inwhich(X, Y, Z) are the coordinate of the Tool frame origin and angles (O, A, T ) are three Euler angles defining the orienta- tion of the Tool frame. The Tool frame is located at the robot hand with its Z axis along the hand, its X axis going to the right of the hand, and its Y 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. To manipulate the above data we may use the following example:
  • 6. 6 DECOMPOSE X{ } = point where X{1, 2, .., 6} = {XY ZOAT} of location point. Assume (#ref) then (DECOM- POSE X[]= #ref) stores the components into x[] so that to index them. The components can then be used as (MOVE #ppoint(X[0],...,X[5])). 4. Transformation The syntax is (TRANS(exp1,...,exp6)) like in the following instruction: MOVE frame:TRANS(r*cos(a),r*sin(a),0,90,-90,0) or SET X = frame:TRANS(r*cos(a),r*sin(a),0,90,-90,0) where (frame) is a transformation defining the position of the center of a cercle, (r) is the radius, and (a) id the angle. Another form is the (STRANS <array name> { }) where (array name) is to receive the robot hand data. For example: STRANS X{ } produces the array X such that the first 9 components consists of the orientation matrix and the last three components consists of the cartesian position. 5. Location variable assignments (a) HERE < location var> Allows copying the robot coordinate into a variable. Ex1: (HERE part) where (part) becomes the current Robot location Ex2: (HERE #part) where (#part) becomes the current Robot precision point (b) SET <location var> = <location value> Generally <location var > is a compound obj(1) : obj(2) : ... : obj(k) which should be previously defined. obj(i) is set relative to obj(i + 1) using <loaction variable>. Ex. SET #ref = #ppoint(exp1, ..., exp6) EX. SET picks = HERE: Shift sets picks equal to transf. shift relative to current robot location (HERE) SET # place = # post precision point ā€ # placeā€ becomes = that of ā€ # postā€ 6. Motion Instructions (a) Move <location> Moves using joint interpolated motion (J.I.M), in the joint space, to a destination specified as a location or a precision point. Ex1: MOVE # picks moves J.I.M. to precision point # picks MOVE pallet moves J.I.M. to location pallet Ex2: MOVE #ppoint(exp1,exp2, ...,exp6)
  • 7. 7 Ex3: Here #ref DECOMPOSE X[]= #ref MOVE #ppoint(X[0],...,X[5]) (b) MOVET <location>, <hand opening> moves J.I.M. to (location) and hand opening EX. MOVET part1, Hand-5 moves J.I.M. to (part 1), and Hand Hand-5 (c) MOVES <location> moves on a straight-line path (SLP) to ā€Locationā€ Ex. MOVES place (d) MOVEST <location> , <hand opening> moves SLP and hand opening (mm) EX. MOVEST part # , 25 moves SLP and hand 26 mm (e) APPRO <location>, <Distance> moves J.I.M. to Location - (Distance) Ex. APPRO place, offset moves J.I.M. to place, only z component to place is affected by (- offset). APPROS <location>, <Distance> moves S.L.P. to Location - (Distance) (f) DEPART < Distance > moves J.I.M. from current robot location backs by (Distance) Distance > 0 .... > backs Z axis Distance < 0 .... > forward Z axis (g) DEPARTS <Distance> moves SLP from current robot location backs (Distance)Z. 4. VAL II structured construct 1. The case structure Allows selecting actions depending on external conditions: CASE <exp1> OF VALUE <exp> {,...<exp>}: <group of steps> VALUE <exp> {,...<exp>}: <group ofsteps> {ANY} <group of steps> END Description: (a) <exp 1> is evaluated, let Val be its value,
  • 8. 8 (b) All the <exp> stat. following VALUE are evaluated, if any of these returns a value equal to Val, then the <group of steps> is executed and control is transferred to statement following the END. (c) If there is no <exp> whose value matches with Val and if an ANY statement is included, then the <group of steps> following ANY is executed and control is transferred to the statement following the END. Example: CASE INT(X) OF VALUE 0, 2,4, 6,8, 10 TYPE ā€The number is evenā€ VALUE 1,3,5,7,9 TYPE ā€The number is oddā€ ANY TYPE ā€The number is < 0 or > 10ā€ END 2. DO-UNTIL DO {< group of steps >} UNTIL <logical exp> (a) The <group of steps> is executed as long as <logical exp> is false. (b) When <log. exp> is true, then control is transferred to the statement following the END. 3. FOR <log Var.> = <initial> TO <final> {STEP increm.>} FOR part = 1 TO row.length CALL move.part SET hole = SHIFT (hole by 100,0,0) END This assumes that (move.part) is a subroutine to pitch up a part and it down at the location ā€holeā€. 4. IF <log. exp> THEN <group 1 of steps> {ELSE <group 2 of steps>} END 5. WHILE <logical exp> DO {<group of steps> } END
  • 9. 9 Exercises 1. Give example of compound transformations and explain their benefits in manipulating an object such as a cup 2. Find the mathematical transformations that are required to perform the following type of motions: (a) Joint interpolated motion (b) Straight-line path in the cartesian space. 3. A robot is assigned to pick blocks off of a conveyer belt and deposit them in a pallet with three-by-three array of positions for the blocks. Write a VAL II program to perform this operations. 4. A robot gripper is equipped with three proximity sensors: left (SL), right (SR), and hand(SH). All three sensors can be read by VALII and give binary values. 5. If an object is in front of a sensor, then part of the emitted light is reflected on conse- quently the value returned is logic 1. Otherwise it returns O. The opening or closing of the robot hand can be programmed in an incremental way. Write a program in VAL II language to perform the following: (a) Search on the workspace table (L1, L2) an object. For this left and right motions will be required until either SR or SL return a 1. (b) Center the robot hand on the object: moves right or left (if SR = 1 or SL = 1, respectively) until both sensors return 0. Then close the gripper by āˆ†d until either SR = 1 or SL = 1. If both sensors generate 1 then exit. (c) Now the robot hand is centered in front of the object. Moves to the object and check all three sensors. If only Sr or SL return 1, then center again. If only SH returns 1, then grasp the object and exit (success.)