Delta Tau GEO BRICK LV Manuale Utente
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.
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.
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 ADDRESS, CMDx,
and SENDx) will be entered into the open buffer. The on-line CLOSE command stops entry into the
buffer.
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 ADDRESS, CMDx,
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.
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).
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.
– 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).
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).