giant.calibration.estimators.TemperatureDependentAlignmentEstimator

class giant.calibration.estimators.TemperatureDependentAlignmentEstimator(frame_1_rotations=None, frame_2_rotations=None, temperatures=None, order='xyz')[source]

This class estimates a temperature dependent attitude alignment between one frame and another.

The temperature dependent alignment is found by fitting linear temperature dependent euler angles (or Tait-Bryan angles) to transform from the first frame to the second. That is

TB=Rm(θm(t))Rn(θn(t))Rp(θp(t))TA

where TB is the target frame, Ri is the rotation matrix about the ith axis, TA is the base frame, and θi(t) are the linear angles.

This fit is done in a least squares sense by computing the values for θi(t) across a range of temperatures (by estimating the attitude for multiple single images) and then solving the system

[1t11t21tn][θm0θn0θp0θm1θn1θp1]=[θ0θmθ0θnθ0θpθkθmθkθnθkθp]

where θkθi is the measured Euler/Tait-Bryan angle for the kth image.

In general a user should not use this class and instead the Calibration.estimate_temperature_dependent_alignment() should be used which handles the proper setup.

Parameters:
  • frame_1_rotations (Iterable[Rotation] | None) – The rotation objects from the inertial frame to the base frame

  • frame_2_rotations (Iterable[Rotation] | None) – The rotation objects from the inertial frame to the target frame

  • temperatures (List[Real] | None) – The temperature of the camera corresponding to the times the input rotations were estimated.

  • order (str) – The order of the rotations to perform according to the convention in quaternion_to_euler()

frame_1_rotations: Iterable[Rotation] | None

An iterable containing the rotations from the inertial frame to the base frame for each image under consideration.

frame_2_rotations: Iterable[Rotation] | None

An iterable containing the rotations from the inertial frame to the target frame for each image under consideration.

temperatures: List[Real] | None

A list containing the temperatures of the camera for each image under consideration

order: str

The order of the Euler angles according to the convention in quaternion_to_euler()

angle_m_offset: float | None

The estimated constant angle offset for the m rotation axis in radians.

This will be None until estimate() is called.

angle_m_slope: float | None

The estimated angle temperature slope for the m rotation axis in radians.

This will be None until estimate() is called.

angle_n_offset: float | None

The estimated constant angle offset for the n rotation axis in radians.

This will be None until estimate() is called.

angle_n_slope: float | None

The estimated angle temperature slope for the n rotation axis in radians.

This will be None until estimate() is called.

angle_p_offset: float | None

The estimated constant angle offset for the p rotation axis in radians.

This will be None until estimate() is called.

angle_p_slope: float | None

The estimated angle temperature slope for the p rotation axis in radians.

This will be None until estimate() is called.

Summary of Methods

estimate

This method estimates the linear temperature dependent alignment as 3 linear temperature dependent euler angles according to order.