Skip to content
This repository was archived by the owner on Dec 24, 2023. It is now read-only.
This repository was archived by the owner on Dec 24, 2023. It is now read-only.

MRP to be the attitude representation stored in a context #14

Open
@ChristopherRabotin

Description

@ChristopherRabotin

Modified Rodrigues Parameters have been developed for the aerospace industry and recommended by Schaub (cf. Basilisk) and as the attitude representation in NASA's Best Practices for Navigation Filters.

Some of the main reasons include:

  1. Ease of interpolation, although switching to the shadow set may lead to interpolation issues
  2. Only three numbers proportional to the tangent of the quarter of the angle -- which implies that a 32 bit representation may be sufficient in many (most?) cases
  3. Ease of conversion to a skew-symmetric matrix and to quaternions
  4. No ambiguity in quaternion nomenclature or structure
  5. The orientation path between two MRPs is necessarily the shortest path (which is not true for quaternions)
  6. MRPs are necessarily normalized

Proposed signatures

This would be available everywhere by default.

MRP definition

pub struct MRP {
   s1: f32,
   s2: f32,
   s3: f32,
   is_singular: bool
}

Question: are 32 bits indeed enough to represent all rotations without loss compared to a 64 bit unit quaternion? This question can be easily answered with a plot showing the error in conversion to/from a 32 bit MRP and 64 bit quaternion.

Question: if the shadow set is always enforced, is there a need for the is_singular parameter?

Nomenclature

The nomenclature from Schaub and Junkins shall be used throughout the implementation, including for the naming of the operations (e.g. Add vs Mul).

Metadata

Metadata

Assignees

No one assigned

    Labels

    proposedA proposed functionalityspecificationRelated to the "how should this be done" question

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions