Delta Tau GEO BRICK LV User Manual

Page of 440
 
Turbo PMAC User Manual 
260
 
Setting Up a Coordinate System 
Note:  
Formal robotic analysis makes a distinction between joint position, and the actuator 
positions required for that joint position.  Usually, while the two positions are the 
same, there are cases, such as when two motors drive a joint differentially, where 
there is an important difference.  If your system has a distinction between joint and 
actuator positions, your kinematic calculations must include this distinction, to go 
all the way between actuator positions and tool-tip positions, with joint positions as 
an intermediate step.  This documentation will refer to only joint positions, although 
this could technically refer to actuator positions in some applications. 
Creating the Kinematic Program Buffers 
Turbo PMAC implements the execution of kinematic calculations through special forward-kinematic and 
inverse-kinematic program buffers.  Each coordinate system can have one of each of these program 
buffers, and the algorithms in them can be executed automatically at the required times, called as 
subroutines from the motion program. 
Creating the Forward-Kinematic Program 
The on-line OPEN FORWARD command opens the forward-kinematic buffer for the addressed coordinate 
system for entry.  The on-line CLEAR command erases any existing contents of that buffer.  Subsequently, 
any program command sent to Turbo PMAC that is legal for a PLC program (except ADDRESSCMDx
and SENDx) will be entered into the open buffer.  The on-line CLOSE command stops entry into the 
buffer. 
Before any execution of the forward-kinematic program, Turbo PMAC will automatically place the present 
commanded motor positions for each Motor xx in the coordinate system into global variable Pxx.  These 
are floating-point values, with units of counts.  The program can then use these variables as the “inputs” to 
the calculations. 
After any execution of the forward-kinematic program, Turbo PMAC will take the values in Q1 – Q9 for 
the coordinate system in the user’s engineering units, and copy these into the 9 axis target position 
registers for the coordinate system.  There they are used as the starting positions for the first programmed 
move that follows.  The following table shows the axis whose position each variable affects, and the 
suggested M-variable number for each of these registers (listed for debugging purposes). 
Axis-
Position Q-
Variable 
Axis 
Letter 
Target 
Register 
Suggested 
M-Variable 
Axis-
Position Q-
Variable 
Axis 
Letter 
Target 
Register 
Suggested 
M-Variable 
Axis-
Position Q-
Variable 
Axis 
Letter 
Target 
Register 
Suggested 
M-Variable 
Q1 A 
Msx41 Q4 U 
Msx44 Q7 X Msx47 
Q2 B 
Msx42 Q5 V 
Msx45 Q8 Y Msx48 
Q3  C 
Msx43  Q6 W 
Msx46 Q9 Z Msx49 
The basic purpose of the forward-kinematic program, then, is to take the joint-position values found in P1 
– P32 for the motors used in the coordinate system, compute the matching tip-coordinate values, and place 
them in variables in the Q1 – Q9 range. 
It is a good idea to check in your forward-kinematics program to make sure that a position reference has 
been properly established for each motor, either through a homing search move or an absolute position 
read.  This can be done by evaluating the home complete status bit for each motor; the run-time error bit 
can be set if the referencing has not been done (see example).