ESOQ2.estimate

giant.stellar_opnav.estimators.esoq2:

ESOQ2.estimate(target_frame_directions, base_frame_directions, weights=None)[source]

This function uses the ESOQ2 algorithm to determine the optimal attitude quaternion given sets of observed and reference unit vectors. It is based on Daniele Mortari’s work.

Parameters:
  • target_frame_directions (ndarray[tuple[Any, ...], dtype[float64]]) – Matrix of observed unit vectors (3xN)

  • base_frame_directions (ndarray[tuple[Any, ...], dtype[float64]]) – Matrix of reference unit vectors (3xN)

  • weights (ndarray[tuple[Any, ...], dtype[float64]] | None) – Vector of weights for each observation (N,) or None

  • n_iter – Number of iterations for lambda computation (default=5, use 0 for lam=1)

Returns:

Near optimal attitude quaternion

Return type:

Rotation

Note

This implementation is based on “Second Estimator of the Optimal Quaternion” by Daniele Mortari, Journal of Guidance, Control, and Dynamics, Vol.23, No. 5, Sep-Oct 2000, pg 885-888.