Delta Tau GEO BRICK LV User Manual

Page of 440
Turbo PMAC User Manual 
Setting Up a Coordinate System
 
263
 
Creating the Inverse-Kinematic Program 
The on-line OPEN INVERSE command opens the inverse-kinematic buffer for the addressed coordinate 
system for entry.  The on-line CLEAR command erases any existing contents of that buffer.  Subsequently, 
any math or logic program command sent to Turbo PMAC that is legal for a PLC program (this does not 
include ADDRESSDISPLAYCMDx, or SENDx) will be entered into the open buffer.  The on-line CLOSE 
command stops entry into the buffer. 
Before any execution of the inverse-kinematic program, Turbo PMAC will place the present axis target 
positions for each axis in the coordinate system into variables in the range Q1 – Q9 for the coordinate 
system.  These are floating-point values, in engineering units.  The program can then use these variables as 
the “inputs” to the calculations.  The following table shows the variable for each axis: 
Axis-
Position Q-
Variable 
Axis 
Letter 
Axis-
Position Q-
Variable 
Axis 
Letter 
Axis-
Position Q-
Variable 
Axis 
Letter 
Q1 A Q4 U Q7 X 
Q2 B Q5 V Q8 Y 
Q3 C Q6 W Q9 Z 
After any execution of the inverse-kinematic program, Turbo PMAC will read the values in those variables 
Pxx (P1 – P32) that correspond to Motors xx in the coordinate system with axis-definition statements of 
#xx->I.  These are floating-point values, and Turbo PMAC expects to find them in the raw units of 
“counts.”  Turbo PMAC will automatically copy these values into the target position registers for these 
motors (suggested M-variable Mxx63), where they are used for the fine interpolation of these motors.   
There can be other motors in the coordinate system that are not defined as inverse-kinematic axes; these 
motors get their position values directly from the axis-definition statement and are not affected by the 
inverse-kinematic program. 
The basic purpose of the inverse-kinematic program, then, is to take the tip-position values found in Q1 – 
Q9 for the axes used in the coordinate system, compute the matching joint-coordinate values, and place 
them in variables in the P1 – P32 range. 
Example 
Continuing with our example of the two-axis shoulder-elbow robot, and for simplicity’s sake limiting 
ourselves to positive values of B (the right-armed case), we can write our inverse-kinematic equations as 
follows: 
C
)
C
A
(
A
2
Y
2
X
1
L
2
2
2
L
2
1
L
2
Y
2
X
1
cos
C
)
X
,
Y
(
2
tan
a
C
A
2
L
1
L
2
2
2
L
2
1
L
2
Y
2
X
1
cos
B
+
=


+
+
+
+
=
=
+


+
+
=
 
 
 
   (X, Y) 
   Y 
 
 
 
L2 
     
√(X
2
+Y
2
 
 
 
     B 
 L1 
    
C
        A 
 
 
        X