Title: Transformations in V , VAL3, and TPP
1Transformations in V, VAL3, and TPP
- Sebastian van Delden
- USC Upstate
- svandelden_at_uscupstate.edu
2V
3Defining Transformations
- The built-in V trans function creates a new
transformation - trans(X, Y, Z, Yaw, Pitch, Roll)
4Related V Functions
- set curpos HERE
- The here function returns a transformation that
represents the current location of the tool frame
(NOTE set needs to be used to populate location
variables). - decompose curvals curpos
- The decompose function can be used to return the
6 position values. - dx (location)
- Returns X value of location
- dy (location)
- Returns Y value of location
- dz (location)
- Returns Z value of location
- inverse (transformation)
- Return the inverse of its parameter
5Related V Functions
- RX(angle)
- Create a pure rotation transformation of angle
degrees around X. - RY(angle)
- Create a pure rotation transformation of angle
degrees around Y. - RZ(angle)
- Create a pure rotation transformation of angle
degrees around Z. - SHIFT(transformation BY x_shift, y_shift,
z_shift) - Return a transformation resulting from shifting
the translation values of the transformation
parameter. - scale(transformation BY factor)
- Returns a scaled transformation
6Applying Transformations
- Transformations can be multiplied together using
a colon() to create a new location. - move trans(10,2,30,90,0,0)rx(30)a
- ORDER MATTERS
- move rx(30)trans(100,0,0,0,0,0)
- Make a 30 degree rotation around robot world X
and then translate 100 mm down this direction. - I.e. rotation happen around world frame
- move trans(100,0,0,0,0,0)rx(30)
- Translate 100 mm down the original world X, and
then a 30 degree rotation - I.e. rotation happen around tool frame
7Defining Tool Transformations/Frames
- The tool frame is
- located on the tool
- flange.
- Usually the tool frame
- is moved to an
- appropriate location in
- the tool.
- Allows for better tool control
- tool trans(X,Y,Z,Yaw,Pitch,Roll)
- X,Y,Z,W,P,R are manually determine by user.
8Tool Transformations
- IMPORTANT Always assign the tool transformation
before you teach points AND before you visit
those points. - All motion instructions after the tool trans
declaration use that tool frame. - The tool can be redefined at any point in the
program with another tool trans statement
9Tool Transformation Example
- What is the tool trans for this tool?
Original tool frame on flange
Desired location of tool frame
10Defining Generic Frames
- A coordinate system, or frame, can be created in
V by teaching 3 locations - An origin, origin.
- A location on the X axis, x.
- A location on the Y axis, y.
- set f frame(origin, x, y, origin)
- The first parameter is where X and Y cross. This
is usually the origin, but you can move this up
or down.
11More on Frames
- Be careful when moving to a frame.
- Consider trying to touch the origin of the frame
in the picture with the tip of tool. - move f
- Will crash the arm in the box
- move ftrans(0,0,0,0,180,0)
- Will align Zs properly
12Approaching and Departing Locations
- appro(A, 50) or appros(A,50)
- Go to a location 50 mm above A, where above
is along the Z axis associated with A - depart(50) or departs(50)
- Move 50 mm away from the current location along
the locations Z axis.
13VAL3
14Defining Tool Transformations/Frames
- Any number of tool transformations can be defined
as global variables
1. Cursor to flange 2. Press New Key - Give
the tool transformation a name, for example,
mytool
15Manually Enter X, Y, Z, W, P, R
16Tool Transformation and Motion
- Every motion instruction must include a tool
transformation as a parameter - movej(somePoint, mytool, motionDescription)
- movel(somePoint, mytool, motionDescription)
- movec(viaPoint, somePoint, mytool,
motionDescription) - No guesswork!
17Defining Transformations
- Transformation Variable trsf enables to make
computation on Cartesian points - Ex Approach on point, Shift in pallet, Compose
a new point, . - 6 numeric field x, y, z, rx, ry, rz
- If trsf trShift is defined, two possible ways to
populate it with values - trShift0,0,-100,0,0,0
- or trShift.x0 trShift.y0 trShift.z-100
trShift.rx0 ...
Not possible to make motions on trsf !! Used
ONLY for computation on Cartesian !!
18Apply a Transformation using APPRO
POINT ? appro(POINT,TRSF) APPRO computes a
Cartesian point related to a point on which is
applied a transformation
POINT p POINT pPick TRSF trShiftz NUM
nDistance100 are defined trShiftz0,0,-nDistan
ce,0,0,0 pappro(pPick,trShiftz) movej(p,tGrip,m
Fast)
Or movej(appro(pPick,trShiftz),tGrip,mFast)
Or movej(appro(pPick,0,0,-100,0,0,0),tGrip,mFas
t)
19Transformation Example 1
20Transformation Example 2
(Blend off)
21Defining Generic Frames
Importance The robot is in production, The
application is working at full capacity, but .
Joe is driving the forklift and ... !!!!
DISASTER !!!!! one day for re teaching
locations.. Except if ...
22Frame Creation
- Local Coordinate system
- to make points re teaching easier
- used to duplicate locations
- shift of points in a pallet
23Frame Teaching
- Defined with 3 points to teach
- Use a precise tool pointer
- Define this tool as current
- Teach points as far as possible each other (
accurate)
24POINTS IN A FRAME
- Teach points using the frame so that they are
created in the tree branch of the frame. - During teaching coordinates are displayed in
frame reference - For the move instruction, it is not needed to
specify the frame - movej(pA ,tGrip, mFast)
25Setting a Frame in the Program
nError setFrame(pOrigin, pX, pY, fRef)
3 points O, X, Y
Frame to compute (A Pass-by-Reference Parameter)
Error Code 0 no error -1 ptX too
close to ptOrigin -2 3 points are nearly
aligned
26Compose can be used to define a new point in the
frame
Compose(point,frame,trsf) compute a point
shifted by trsf expressed in frame
pcompose(pFirst,fPallet,160,50,0,0,0,0) movel(p
,tGrip,mSlow)
27Using 2 Identical Frames
- To use a point with same coordinates in 2 frames
- Create a point in each frame
- Teach one of the point
- Copy trsf of point in second one
pRef2.trsfpRef1.trsf
28TPP
29Defining the Tool Transformation/Frame
- The tool coordinate system is defined by using
the frame setup screen or changing the following
system variables. - Ten tool coordinate systems can be defined. The
desired one can be selected. - MNUTOOL 1, i (Frame number i 1 to 10) is
set the value. - MNUTOOLNUM group is set the used tool frame
number. - Three ways to set a tool frame.
30Navigate to the Tool Offset Menu
- Press the MENU key on the teach pendant and then
navigate to SETUP -gt FRAMES.
31You can define up to 10 tool frames
- Select the one you want to define and click
DETAIL. SETIND sets the current tool frame.
32Choose which method you want to use to define the
tool frame
33Direct (Manual) Method just type in the X, Y,
Z, W, P, R values
34Three Point Method
- Defines the only X, Y, Z location of the tool
center point (TCP). - Teach three points that approach the TCP from
different angles - The bigger difference in the angles the better.
- Use a stationary point.
- There is no built-in three point method in V
- Exercise Figure out how to do this in V/VAL3 ?
35The Three Point Method Idea
36Think about the Geometry/Math
37(No Transcript)
38TPP walks you through the three point method
- The three points to be taught
39Six Point Method
40Setting the Tool Frame in a Program
- A taught location can only be revisited if the
active tool frame is the same one it was taught
with. - The program will generate a run time error if a
different tool frame is active. - The tool frame can be changed in the program
using the UTOOL_NUM command. To find this,
press INST, then
41Setting the Tool Frame in a Program
- Set the appropriate tool frame before the motion
instruction -
- Taught using tool frame 2
- Taught using tool frame 1
42Defining Generic Transformations/Frames
- In TPP, you can define offsets which can be
applied to any motion command. - It can be inserted directly in the motion
command. - Example - move to location p1 with an offset
located in position register 2 (pr2)
43Step-by-Step Example Offsets
- Recall the previous program a couple slides back
- Lets add an offset/transformation so that the
point P3 is visited with a -50 Z translation
and a 20 degree Yaw rotation (around X).
44Defining the Offset in a Position Register.
2) Press TYPE (F1) and cursor to Position Reg
1) Press Data Key
45Enter the values 0,0,-50,20,0,0 and press done
when finished
46Modifying the Motion Instruction
- Press Edit key to get back to program and cursor
over to the end of the desired motion
instruction. Then press CHOICE.
47Navigate to Offset, PR
48Finish Inserting the Offset
- P3 is now visited with an offset of -50 in tool
Z and a Yaw of 20 degrees.
49Offset VERSUS Tool_Offset
- Offset
- Performs the transformation w.r.t the world
coordinate system - Tool_Offset
- There is also a Tool_Offset that you can
navigate using the menus which performs the
transformation w.r.t the tool coordinate system.
50Defining Generic Frames
- Called User Frames in TPP, these frames are
defined and used almost exactly like how tool
frames are. - Like with tool frames, navigate to Frames
51If you are still looking at the tool frames,
press the OTHER function key and choose User
Frame
52Manually Enter in the User Frame data or use one
of the built-in methods
53Selecting the User Frame
- Just go back to your program, and insert the
-
- UFRAME_NUM
- command similar to how a tool frame is declared
in the program.