Split-axis control is a special control mode that drives pairs of motors in unison. This technique is commonly employed in gantry robots where two motors drive the opposite ends of the cross beam to avoid binding and to improve performance. These motors, often referred to as X and X’, together produce the X-axis motion for the gantry robot.
At the Cartesian and joint levels of control, split-axis motors are treated as though they were a single motor and are represented as a single axis and constitute a single degree-of-freedom. At the servo level, each motor in a split-axis pair is individually configured and tuned so that split axis pairs do not have to utilize identical motors or drive trains. The one restriction is that the motors within a split-axis pair must be interfaced to the same physical controller.
Split-axis control is only permitted for selected axes of selected kinematic modules. Starting with GPL Version 3.2, multiple split-axis pairs within the same kinematic module are supported. The most commonly used split axis pair is the X-X' axes of the Enhanced XYZTheta kinematic module. If you are unsure of whether this option is available for your robot, please see the Kinematic Library description for your robot’s geometry.
Enabling Split-Axis Control
To enable split-axis control for your robot, set the bits that correspond to the split-axes in the following parameter and reboot the controller.
DataID | Parameter Name | Description |
---|---|---|
2001 |
Split-axis mask |
Bit mask that indicates any axes that are to be enabled as split-axes. A value of 1 indicates the first axis, a value of 2 indicates the second axis, a value of 4 indicates the third axis, a value of 5 indicates the first and third axes, etc. (Prior to GPL 3.2, only the X-X' axes of the Enhanced XYZTheta kinematic module supported split-axis and DataID 2001 was a Boolean value.) |
For each axis specified for split-axis control, the system automatically configures an extra motor. These extra motors are assigned logical numbers following the last primary motor for the robot. For example, if the robot is a three-axis XYZ Cartesian and the X-axis is specified as split, the first and the fourth motors will be subject to split-axis control and will be moved in unison. If the X and Z axes are specified as split, the third and fifth motors will be moved in unison in addition to the first and fourth motors.
Once the split axes are configured, the parameters for their motors can be accessed and defined in the normal manner via the web operator interface. Typically, the standard servo setup parameters, e.g. PID gains, rated motor torque, are set to the same values for both the pairs of split-axis motors.
Special Configuration Parameters
In addition to the standard servo parameters, the split-axis motors have the following extra parameters.
DataID | Parameter Name | Description |
---|---|---|
2300 |
Joint to motor scale factors |
To permit different motors and gear trains to be used for the two motors of a split-axis pair, the joint to motor scale factor for the extra motor must be specified in this parameter array. After the last scale factor of the primary axes is specified, the scale factor for the extra motor of the first split axis is define, followed by the scale factor for the extra motor of the second split axis, etc. |
10339 |
Split axis cross-coupling gain |
This is a special feedback term that is added into the standard PID loop. This gain factor is multiplied by the difference in the actual position of the two split-axis motors. This correction can assist in minimizing the tracking error between the two motors. |
10341 |
Cross-coupling error SPR filter pole, Hz |
Single-pole roll off (SPR) low-pass filter for the cross-coupling error term that is multiplied times the "Split axis cross-coupling gain" (DataID 10339). The main purpose of this filter is to minimize the noise introduced by the cross coupling compensation. Setting the filter pole to 0 disables the filter. The system default value is 0. |
Motor Commutation Reference Determination
Because the two motors of a split-axis are typically coupled mechanically, one motor cannot be moved independently while the other motor is being servoed to a fixed position. To address this problem, when either motor is moved to locate its commutation reference angle, the other motor is automatically put into "free" mode. For X or Y-axes without gravity loading and relatively low friction, this technique yields good reference angles. Alternatively, it is recommended that a commutation reference determination method be implemented that does not require axis motion. For example, Hall-effect sensors or absolute encoders could be used to establish the commutation reference angles.
Homing Sequence
Special consideration has to be given to homing motors subject to split-axis control. The major requirement is that the motors must be simultaneously homed and their homing criteria (e.g. hard stops, limit switches, encoder zero indices) must be reasonably consistent. For example, to simultaneously home X and X’ motors, the homing sequence must be either be set to home all motors simultaneously or the homing sequence must be set to “random” and the X and X’ motor must be grouped to simultaneously home. That is:
DataID | Parameter Name | Description |
---|---|---|
2802 |
Homing sequence |
The homing sequence must either be set to "1" to home all motors simultaneously or "2" to home the motors in the order specified by the "Homing order" (DataID 2810). |
2810 |
Homing order |
If the "Homing sequence" (DataID 2802) is set to "2", this array specifies the order in which the motors are homed. Since split-axis motors must be moved in unison, split-axis motors must be grouped together. For example, for a XYZ robot with a split X-axis, the homing order might be "3, 101, 204, 2, 0 ". This would home the Z-axis first to permit it to be retracted from the work space, followed by the X and X' axes being simultaneously homed, followed by the Y axis. |
Robot Power Enable Alignment
Each time that power to the motors is enabled (after the motors have been commutated), the system automatically slowly moves all pairs of split-axis motors into alignment to ensure that the pairs of motors are not skewed with respect to each other. If required, this small alignment motion is performed at the speed specified for the homing operation. Therefore, even if your motors do not move during the homing operation (e.g. they are equipped with absolute encoders or Hall sensors), the homing speed parameter should be set or left defaulted to its slow speed value.
DataID | Parameter Name | Desxcription |
---|---|---|
2804 |
Homing speed 1, ecnts/sec |
This motor speed is used both during the homing operation and each time that motor power is enabled to align split-axis motors. |
This completes the special setup instructions for the split-axis control mode.