Compensation#

class lsst.ts.mthexapod.Compensation(*, elevation_rotation_coeffs, azimuth_coeffs, temperature_coeffs, min_temperature, max_temperature)#

Bases: object

Compute hexapod compensation for elevation, azimuth, camera rotation, and temperature.

The compensation is computed as offsets for x, y, z, u, v, w.

Parameters:
  • elevation_coeffs (list [list [float]]) –

    Elevation CosinePolynomial coefficients, as a sequence of 6 coefficient sequences, for x, y, z, u, v, w. Each coefficient sequence must contain at least one element. Here is an example showing valid, though unrealistic, values:

    elevation_coeffs=[
        [0.11, 0.012],
        [0.21],
        [0.31, 0.032, -0.0033],
        [0.000042, 0.000042],
        [0.000052, 0.000052],
        [0.000062],
    ]
    

  • azimuth_coeffs (list [list [float]]) – Azimuth coefficients, with the same format as elevation_coeffs.

  • rotation_coeffs (list [list [float]]) – Rotation coefficients, with the same format as elevation_coeffs.

  • temperature_coeffs (list [list [float]]) – Temperature RangedPolynomial coefficients, with the same format as elevation_coeffs.

  • min_temperature (float) – Minimum temperature for which temperature_coeffs is valid.

  • max_temperature (float) – Maximum temperature for which temperature_coeffs is valid.

  • elevation_rotation_coeffs (list[list[list[float]]])

Raises:

ValueError – If elevation_coeffs, azimuth_coeffs, rotation_coeffs, or temperature_coeffs is not a sequence of 6 items, or if any item is not a sequence of floats with at least 1 element.

Methods Summary

get_offset(inputs)

Get compensation offset.

Methods Documentation

get_offset(inputs)#

Get compensation offset.

Parameters:

inputs (CompensationInputs) – Inputs for the compensation model.

Returns:

offset

Compensation offsets, such that:

compensated position = uncompensated position + offset.

Return type:

Position

Raises:

ValueError – If elevation not in range [0, 90].