Devices

rotAXYS Compact Positioning System

Introduction

The rotAXYS compact positioning system consists of three single idependent axes:

  • rotation axis - rotates the pivot arm
  • radius axis - moves the jib along the pivot arm
  • lift axis - moves the pivot arm up and down

You can use the single axis control functions like LCA_MoveToPos() to control movement of each single axis independently. For the rotation axis the angle is given in RADIAN and for the radius axis the radius position is given in MILLI METERS.

rotaxys_sketch.png

Coordinate system

Because the rotAXYS axis system has a rotation axis, some translations needs to take place to convert between polar and Cartesian coordinates. If you work with the single axis devices of the rotAXYS system, you need to do these translations for yourself. If you work with the multi axis interface (LCA_MoveToPosXY()), then the axis system handles all the translation stuff internally. You can use the following calculations to translate from polar into Cartesian coordinates and vice versa:

rotaxys_coordinate_system.png
  • d - current distance of the jib to the pivot arm (radius)
  • alpha - current angle of the pivot arm to the X-axis (azimuth)
  • dx - jib length (more precisely, the capillary distance from the central axis of the pivot arm). You will find the length of the jib in the rotAXYS device configuration file in the tag <JibLength> of the axis system device. The default value for a standard rotAXYS device is -18.
    ...
    <Device Name="rotAXYS1">
    <Type>Lcl::CRotaxys</Type>
    <LiftAxis>rotAXYS1_Lift</LiftAxis>
    <RotationAxis>rotAXYS1_Rotation</RotationAxis>
    <RadiusAxis>rotAXYS1_Radius</RadiusAxis>
    <JibLength>-18</JibLength>
    </Device>
    ...
  • (x,y) - denotes the actual position that is to be approached through the capillary

Polar to Cartesian (x,y) coordinates

The following calculation shows how to translate polar coordinates into Cartesian (x,y) position.

rotaxys_polar_to_cartesian.png

Cartesian (x,y) to polar coordinates

The following calculation shows how to translate Cartesian (x,y) position into polar coordinates.

rotaxys_cartesian_to_polar.png

rotAXYS Device Properties

The common labbCAN bus functions LCB_GetDeviceProperty() and LCB_SetDeviceProperty() enable reading and writing of device specific properties. The rotAXYS device supports the following device properties:

With these two properties it is possible to improve the safety for the XY movements. If the safe rotation property is enabled, then XY movements are blocked, if the upper limit sensor is not active - that means if the lift axis is not in its topmost position. If the lift axis loses steps for some reason, then this function ensures, that a tool that is mounted on the arm will not crash. The following line enables safe rotation:

Result = LCB_SetDeviceProperty(RotaxysDeviceHandle, RotaxysPropertySafeRotation, 1);

Another option is, to read the state of the upper limit sensor with the RotaxysPropertyUpperLimitSensorState parameter and to check, if the sensor is on before an XY movement is started.

double SensorState;
Result = LCB_GetDeviceProperty(RotaxysDeviceHandle, RotaxysPropertyUpperLimitSensorState, &SensorState);
if (1 == SensorState)
{
Result = LCA_MoveToPosXY(RotaxysDeviceHandle, 49, -121, 1, 0);
}