Cartesian Gearing
Language: | [[::Cartesian Gearing|English]] |
---|
Introduction
The Cartesian Gearing (CG) feature enables users to move additional axis proportionally to traveled path of the robot’s tool-tip.
Slaving an axis to it's Pext that is geared to the robot's incremental cartesian change - the path variable (L) in cartesian space is computed each motion sampling period.
The variable keeps track of the traveled path in cartesian space (X,Y,Z). The value is accumulative, which means that if a same line segment is traveled back and forth the L will be increased by the double of the segment length.
Additionally, the ratio between the traveled path and the length-of-the path variable L can be changed for each movement separately. This means that user can assign a nodal ratio parameter for each movement differently.
The L variable is available as external position (Ax.Pext) of an axis. The axis is an arbitrary axis that can be of the same robot or any external axis in the system.
User Functions
The following function are available for Cartesian Gearing Setup:
CG_VER(0,0,0) Returns the current version number
CG_STATUS(0,0,0) Prints on telnet connection internal CG status variables
CG_SET(int rid, int aid, int pf) Setting up CG relationship, if everything is OK a zero value is returned.
rid – robot ID, available as ElementID group property
aid – axis ID, available as ElementID axis property
pf - integer value returns the number of counts per one millimeter traveled path
In order to get pext in millimeters the same value should be assigned to pExtFac
CG_UNSET(int rbt_id, int axis_handle,0) Removing CG relationship, undoes the CG_SET
CG_SET(int rbt_id, int value,0) Set the L to a new value (offset). The value given here is in pExt counts
CG_STOP (0,0,0) Stopping the CG process at the current value of L. Stopping is performed immediately, without deceleration profile
CG_START(0,0,0) Re-starting the CG process that was stopped by CG_STOP command
CG_MOD(mod,0,0) Setting the CG mode (0 – command, default, 1- feedback) if the L variable is computed from the command (setpoint) or the feedback Cartesian coordinates (here).
CG_MASK(mask,0,0) Defining the operational space in which L is computed. For example if mask = 1 then only changes in X coordinate will be included in computation of L. Possible values are:
Mask | Binary Value | Operational Space |
0 | 0 | None |
1 | 1 | X |
2 | 10 | Y |
3 | 11 | XY |
4 | 100 | Z |
5 | 101 | ZX |
6 | 110 | ZY |
7 | 111 | ZYX |
Multi Tool Cartesian Gearing
In case the robot has more than a single tool, then user can assign axis per tool.
CG_ASSIGN_TOOL(int axisHandle, SYS_POINT * pntTool) tool number and offset. these offset are later used for calculating cartGear
CG_CLEAR_ALL_TOOLS(void) set null value (zeros) in all the tools