Programming
STAUBLI TX90XL
Dr. Kurtuluş Erinç Akdoğan
kurtuluserinc@[Link]
Applications: Structure
Variable types:
pointRx: a point location in cartesian
coordinates (p1, p2, p3, ...)
jointRx: a joint location in joint coordinates
(jStart)
tool: a tool defined by the user (tTool)
trsf: a transformation (trAApl)
mdesc: motion descriptor (mNomSpeed)
Applications: Structure
Functions:
movej(joint, tool, mdesc): move to a (point or
joint) coordinate with specified tool and motion
descriptor
movel(point, tool, mdesc): move linearly a
point coordinate with specified tool and motion
descriptor
appro(point, trsf): calculate a transformed
point by using a point and a transformation
waitEndMove: wait for the current movement
to end.
FRAME type
The frame type is used to define the position of reference frames in
the cell.
a reference frame is linked to the world frame, either directly or via
other frames.
Use
To give a more intuitive view of the application points
The display of the cell's points is structured according to the hierarchical structure
of the frames.
To update the position of a set of points quickly
When an application point is linked to an object, it is advisable to define a frame
for that object and link the VAL 3 points to the frame. If the object is moved,
simply reteach the frame to allow all linked points to be corrected at the same
time.
To reproduce a trajectory in several places in the cell
Define the trajectory points relative to a working frame and teach a frame for
each position in which the trajectory is to be reproduced. By assigning the value
of a taught frame to the working frame, the entire trajectory "moves" to the
taught frame.
To make it easier to calculate geometrical movements
The compose() instruction allows geometrical movements expressed in any
reference frame to be performed on any point. The position() instruction is used
to calculate the position of a point in any reference frame.
TRSF type
A transformation (trsf type) defines a position and / or orientation change. It is the
mathematical composition of a translation and a rotation.
A transformation itself doesn´t represent a position in space, but can be interpreted as the
position and orientation of a Cartesian point or frame relative to another frame.
The trsf type is a structured type whose fields are, in this order:
num x Translation along the x axis
num y Translation along the y axis
num z Translation along the z axis
num rx Rotation around the x axis
num ry Rotation around the y axis
num rz Rotation around the z axis
The x, y and z fields are expressed in the unit of length of the application (millimeter or inch,
see the chapter entitled Unit of length). The rx, ry and rz fields are expressed in degrees.
The x, y and z coordinates are the Cartesian coordinates of the translation (or the position of a
point or frame in the reference frame). When rx, ry and rz are zero, the transformation is a
translation without change of orientation.
When a trsf type variable is initialized, its default value is {0,0,0,0,0,0}.
Translation
The position of frame R2 (grey)
relative to R1 (black) is:
x = 250mm, y=350mm, z =
450mm,
rx = 0°, ry = 0°, rz = 0°
Orientation
orientation rx = 20°, ry = 10°, rz =
30° is obtained as follows.
First, the frame (x,y,z) is rotated
through 20° around the x axis. This
gives a new frame (x’,y’,z’). The x
and x’ axis coincide.
Then the frame is rotated through
10° around the y’ axis of the frame
obtained at the previous step. This
gives a new frame (x’’,y’’,z’’). The
y’ and y’’ axis coincide.
Lastly, the frame is rotated
through 30° about the z’’ axis of
the frame obtained at the previous
step. The orientation of the new
frame obtained (x’’’,y’’’,z’’’) is
defined by rx, ry, rz. The z’’ and z’’’
axis coincide
The position of frame R2 (grey)
relative to R1 (black) is:
x=250mm,
y=350 mm,
z=450mm,
rx = 20°,
ry = 10°,
rz = 30°
Approach with Compose
point compose(point pPosition, frame
fReference, trsf trTransformation)
This instruction returns the pPosition to
which the geometrical transformation
trTransformation is applied relative to
the reference frame
Approach with Compose is according to
coordinate frame -100
trShiftz={0,0,100,0,0,0}
p=compose(pPick,world,trShiftz)
movel(p,tGrip,mFast)
10
APPROACH ON POINT
COMPLEX APPROACH - 1 -
COMPLEX APPROACH - 2 -
Local Coordinate system &
Palettization
WHY USING A FRAME ?
FRAME CREATION
FRAME TEACHING
Defined with 3
points to teach :
Use a precise tool :
pointer
Define this tool as Y
current
Teach points as far Axis y X
as possible each
other (+ accurate)
Y Axis x
X Y
World
Origin X
fPallet
POINTS IN A FRAME
Create in tree of
frame, the needed
points :
During teaching
coordinates are
displayed in frame
reference
For the move
instruction , it is
not needed to pA
specify the frame : Y
movej(pA ,tGrip,
mFast)
X Y
World
X
fPallet
COMPUTE A FRAME BY PROGRAM
nError = setFrame(pOrigin, pX,pY, fRef)
3 points O, +X, +Y Frame to compute
Error Code :
0 : no error
-1 : ptX too closed from ptOrigin
-2 : 3 points are nearly aligned
setFrame(p0,px,py,fPallet)
PALETTIZATION IN A FRAME
Compose(point,frame,trsf) : compute a point by translation and rotation
defined in trsf relative to menntioned frame in the function
p=compose(pFirst,fPallet,{160,50,0,0,0,0})
Position
Center of
Frame relative to fPallet
closest hole
defined as
to the origin
fPallet
of fPallet
movel(p,tGrip,mSlow)
Y
Y
X
World X fPallet