Robot Device Modules

Show the Device Modules Menu

 

 

Split-Axis Device Module Feature

Some robot device modules have an optional split-axis feature to allow convenient control of a large mechanism, such as a gantry robot, which requires two motors to drive a single axis. The Split-Axis Option makes control of such configurations transparent to the application software, since it automatically coordinates the drive of the two motors.

From the point of view of the application, there is no distinction between a single-motor axis or a split (dual-motor) axis. The commands sent to the two motors are coordinated to keep the mechanism properly aligned. this alignment includes "straightening" the split axes after calibration and any time power is cycled on, since in both those cases, the two sides of the axis could be misaligned. It also includes separate compensation for backlash and linearity on the two sides. The AdeptMotion VME software and the Adept SmartMotion software both include special compensation for split axes, which can adjust for dynamic imbalances between the drives. Note that both sides of the split axis must have the same encoder scale factor (EA).

Configuring the Split-Axis Features

Most device modules require that the first axis (usually the X axis) be the split axis. On most modules, only one axis may be split. Further, both the AdeptMotion VME software and the Adept SmartMotion software require that the two sides of a split axis be controlled from the same CPU, because of the tight cooperation required between them. (If you have more than one CPU in your system, you can use utility program CONFIG_C.V2 view (and/or change) the association of motion interface boards to the CPU(s). Then, use SPEC.V2 to set-up the mapping of the axes to appropriate motion interface boards.)

To enable the split-axis feature, set bit 1 (the least significant bit, mask value 1) of the robot option word:

  1. Load the SPEC utility program.

  2. From the main menu, select Change robot options and motor configuration.

  3. Choose Y to change the Robot Option bit configuration.

  4. To enable the split-axis software, set bit 1 of the option word. 

    On some modules, the option word is also used to enable other features. To enable both split-axis control and other features, you may need to set more than one bit of the option word. The documentation for your device module will give the default value of the robot option word, if it is not zero.

After you have set the option bit, you can change the mapping of the motors to axes of the module. A typical display is shown in Figure 1

Figure 1 Robot Options, Configuration, and Mapping Menu

The above example is for a 4-axis, “X/Y/Z/theta robot”, with a split X axis. Your display will be different, depending on how many axes your robot has. In the example, note that there are now two motors (numbered 1 and 5) associated with axis 1 (also joint 1), both on board 1, on channels 1 and 2. You can configure the axes any way you wish, although you must make sure both motors of the split axis are controlled by the same CPU. Temporarily setting the board mapping of any axis to 0 (zero) will disable it. This allows you to run either side of the split axis independently.

Tuning for a Split-Axis Mechanism

Figure 2 shows the form of the control system for a split axis. It is similar to the standard AdeptMotion VME or Adept SmartMotion control system, but with two changes. First, it specifically assumes that the mechanism uses velocity servo drives, with tachometer feedback from the motor through the amplifier. The second change is the addition of a special velocity feedforward path, whose gain is automatically adjusted during constant velocity motions to minimize skew error. As shown in Figure 3, skew error is the difference between the position errors on the two sides of a split axis. The two sides are given different velocity feedforward gains: the side which is logically behind is given higher gain; the one logically ahead is given a lower (usually zero) gain. Given tachometer feedback, this type of compensation is very effective; if current (torque) drives are used, it is considerably less effective.

Figure 2 Block Diagram of Control System with Split-Axis Option


Figure 3 Definition of Skew Error

When a split axis has been configured, these new items appear in the tuning menu:

S-A: Skew error gain

S-A: Max velocity FF

where S-A = Split-Axis. These three parameters define what is effectively an adaptive control loop that changes the feedforward gains over time in response to the dynamics of the system.

Skew error and velocity feedforward gain are added to the Data Selection menu for display:

SkuErr: Split-axis skew error

SAVelF: Split-axis velocity F-F gain

While the skew error on the two sides of a split-axis mechanism will be the same (other than sign), the velocity feedforward gains will normally be quite different.

The algorithm used is quite simple, as shown in Figure 4. Every servo cycle, the skew error is multiplied by the SKEW ERROR GAIN to form the change in the velocity feedforward gain. The sign of the change is chosen depending on the sign of the velocity and the sign of the skew error, so that velocity feedforward gain will be increased on the side that is "behind", and the gain on the other side (the one that is "ahead") will be decreased. The result is added to the old velocity feedforward gain, which is then forced to be non-negative but less than the MAX VELOCITY F-F.

Figure 4 Algorithm for Adjusting the Feedforward Gain

To create the correction signal, the velocity feedforward gain is multiplied by the commanded velocity. The result is added to the output to the DAC. Note that if the MAX VELOCITY F-F is zero, then the feature is disabled. Note also that if the commanded velocity is zero, then the velocity feedforward gain remains unchanged but the rest of the calculation is made.

The default value for SkuErr is normally 0 (zero). With this value, a skew error of only one count between the two sides will result in the error message, *Skew envelope error*. You should set the SkuErr parameter to a suitable value before proceeding.

To tune a split axis, first be sure that MAX VELOCITY F-F is zero for both motors. To tune both motors together, define and start a square wave test from the primary motor. Both motors will begin moving in a square wave. Follow the normal tuning procedures described in the AdeptMotion VME User's Guide or the AdeptSmartMotion Developer's Guide. You must define a separate set of gains for each motor. This includes adjusting the rate loop feedback on the amplifier, as well as adjusting the software gains in the AdeptMotion VME or Adept SmartMotion compensator. It is generally desirable to have the gains for both motors as closely matched as possible, particularly in the tachometer or rate loop.

If necessary, it is possible to tune each motor on the split axis separately. You can disable an axis by mapping it to board 0 in the "Change robot options and motor configuration" menu item from the main menu. Return to the tuning menu and tune each motor using a square wave test. Be careful not to use too large of a square wave step because this could jam the axis. When you are done tuning each motor of the split axis separately, enable both motors and proceed with the tuning of the split axis.

After the desired response to the step input has been achieved, use a move between taught points and adjust the split-axis parameters to obtain small skew error. Collect both "SkuErr" (skew error) and "SAVelF" (split-axis velocity feedforward) from both axes during final split-axis tuning.

General Notes on Tuning a Split-Axis System:

Calibration for a Split-Axis Mechanism

Calibration for a split-axis mechanism is no more difficult than calibrating two independent axes. When calibrating a motor, a special "slaving" feature is used so that as you collect data on one side of the split axis, the other side will be driven to follow it. As one side of the split axis completes the calibration procedure and is then moved to the defined safe location, the other side carried along as a slave. The roles are then reversed to calibrate the second side. Finally, V+ squares the mechanism. As a result, virtually any calibration hardware can be used for a split-axis mechanism, except for hard stops. In fact, since the two sides are in fact calibrated independently, the two need not use the same method. For example, one side might calibrate moving ONTO one home sensor, while the other side might do so moving OFF of another one.

To correct for misaligned home switches or zero indices, use the Motor Position at Zero Index parameter available on the Motor Calibration Parameter menu in the SPEC Utility program. This parameter is used to relate the home position to a joint location. It must be accurately specified for each side of the split axis or the axis will not be square. See the Motor Calibration Parameters topic in the Adept SmartMotion Developer's Guide for more details.

Correction of Skew-error after Enabling Arm Power

Some mechanisms can be moved when Arm Power is off, for example if the brakes are released manually. In general, when power is re-enabled, V+ does not move the robot. V+ instead servos the robot at the new position. However on a split axis, V+ will automatically square the mechanism if necessary when power is enabled. If the split axis is gravity-loaded, use the brakes to hold in position when arm power is off to prevent an excessive skew from occurring.

Speed and Acceleration of Skew-squaring Motions

V+ squares a mechanism whenever Arm Power is turned on, whenever FREE mode is exited from the MCP, and when Calibration completes. The acceleration and deceleration for squaring moves is fixed at 0.5 seconds.

In V+ version 10, the squaring velocity is controlled by the "Calibration Search Speed", which may be configured using SPEC.V2.

In V+ version 11, the squaring velocity is controlled by the "Default velocity for DRIVE". The default value of this parameter is 4 encoder-counts per millisecond. (This parameter also controls the the initial position servoing when brakes are being released; this should cause no motion since it is a "move to the current position".) Currently, this parameter cannot be changed with SPEC.V2.

Last modified on: 12/03/2007
Copyright © 2007 by Adept Technology, Inc.
All rights reserved.