Postion Transformation
4 minute read
After linking the drive’s Target Position
and Position Actual Value
to Motorcortex
parameters via ECAT-Tool, a conversion gain is essential for accurate unit conversion. This process ensures proper communication and control between the drive and Motorcortex.
Configure position transformation via the GUI
You can define the position transformation between the drive unit [ticks per revolution]
and the Motorcortex unit [rad]
through the GUI under the Axis Settings Tab.
Example conversion between ticks and radians:
-
Set Encoder Resolution:
- In the
Ticks per rev
field, enter the encoder resolution - Example: For a
20-bit
encoder, enter1048576
- In the
-
Define Unit Conversion and Direction:
- Set the conversion from
per revolution
toradians
- Use the ratio:
Gain Num/Gain Den
=1/2π
- This ensures proper conversion between drive ticks and radians
- Configure the axis rotation direction using
Manual Jog
, if the 3D visualization movesopposite
to the robot, setGain Num to -1
- Set the conversion from
-
Specify Gear Ratio (if applicable):
- If the gear ratio is not applied inside the drive, you must specify it here
- Example for an 80:1 gear ratio:
- Set nMotorside = 1
- Set nLoadside = 80
- If no external gear ratio, leave as 1:1
-
Set Reference Position (Production Mode): This step aligns the GUI’s 3D visualization with the real robot:
- Move the axis to a known reference angle (e.g., “Straight Up 0 deg”)
- Press reference to apply this position
- Or Enter Known Angles
- Fill in the current reference angles in [degrees] for each axis
- Press reference to apply these angles
- The offset in Ticks will be automatically stored in the Offset field
- Verify that the 3D visualization now matches the real robot’s position
- Move the axis to a known reference angle (e.g., “Straight Up 0 deg”)
-
Save Configuration
- Press Save Settings to store all your changes.
Example conversion between ticks and meters:
-
Set Encoder Resolution:
- In the
Ticks per rev
field, enter the encoder resolution - Example: For a
19-bit
encoder, enter524288
- In the
-
Define Direction:
- Use the ratio:
Gain Num/Gain Den
=1/1
- Configure the axis movement direction using
Manual Jog
, if the 3D visualization movesopposite
to the robot, setGain Num to -1
- Use the ratio:
-
Specify Gear Ratio and Meter Per Revolution conversion:
- If the gear ratio is not applied inside the drive, you must specify it here
- Example for an 1:1 gear ratio betweem pully1 and pully2. pully2 drives a spindel with a 10mm pitch.
- Set nMotorside = 1
- Set nLoadside = 100
-
Set Reference Position (Production Mode): This step aligns the GUI’s 3D visualization with the real robot:
- Move the axis to a known reference angle (e.g., “0 meter”)
- Press reference to apply this position
- Or Enter Known Positions
- Fill in the current reference position in [meters] for each axis
- Press reference to apply this position
- The offset in Ticks will be automatically stored in the offset field
- Verify that the 3D visualization now matches the real robot’s position
- Move the axis to a known reference angle (e.g., “0 meter”)
-
Save Configuration
- Press Save Settings to store all your changes.
Example Setup:
Configure position transformation via the DESK-Tool
To configure position transformation for an axis (e.g., axis 1) using the desk-tool:
GUI parameter: | Description: | Desk Parameter: |
---|---|---|
Encoder | ||
Input | Actual encoder ticks | root/AxesControl/actuatorControlLoops/actuatorControlLoop01/positionTransformation/transducer/inputHardwareSide |
Ticks per rev | Encoder resolution | root/AxesControl/actuatorControlLoops/actuatorControlLoop01/positionTransformation/transducer/ticksPerRevolution |
Gain num | Numerator | root/AxesControl/actuatorControlLoops/actuatorControlLoop01/positionTransformation/transducer/gainNum |
Gain den | Denominator | root/AxesControl/actuatorControlLoops/actuatorControlLoop01/positionTransformation/transducer/gainDen |
Gearbox | ||
n Motorside | gearboxMotorside | root/AxesControl/actuatorControlLoops/actuatorControlLoop01/gearboxMotorSide |
n Loadside | gearboxLoadSide | root/AxesControl/actuatorControlLoops/actuatorControlLoop01/gearboxLoadSide |
Homing | ||
Reference | Reference angle in radians or position in meters | root/AxesControl/actuatorControlLoops/actuatorControlLoop01/positionTransformation/referencePositionLoadSide |
Offset | Reference offset in ticks | root/AxesControl/actuatorControlLoops/actuatorControlLoop01/positionTransformation/transducer/offset |
Axis Actual | ||
Position | Axes position actual value in radians or meters | root/AxesControl/axesPositionsActual |
Configuring Persistence for Multiturn Position Storage
Persistence allows single-turn encoders to be used in multiturn applications by automatically storing current encoder ticks in persistence.bin. This feature is particularly useful for maintaining position information across power cycles.
To configure persistence for an axis (e.g., axis 1) using the desk-tool:
-
Enable persistance data:
- Set
root/AxesControl/actuatorControlLoops/actuatorControlLoop01/positionTransformation/transducer/enablePersistence
to1
- Set
-
Set maximum deviation tolerance after power cycles:
- Configure
root/AxesControl/actuatorControlLoops/actuatorControlLoop01/positionTransformation/transducer/deltaTicksMax
to your preferred value in[ticks]
- Configure
-
Monitor position difference:
- Check
root/AxesControl/actuatorControlLoops/actuatorControlLoop01/positionTransformation/transducer/deltaTicks
, which shows the difference between current and stored position after power cycle
- Check
-
Error handling:
- If
deltaTicks
exceedsdeltaTicksMax
, the system will generate anES_Not_Referenced
error - This error is resolved after referencing the axis
- If