Unit Quaternion

Definition

A unit quaternion , with vector part
and scalar part subject to ,
is a global four-parameter representation of a rotation . In this
project it is the canonical attitude-error description (notation.md): the
relative quaternion between an actual frame and its desired frame encodes orientation error through
its vector part alone, so the error vanishes iff . Because the
attitude controller and CLIK enter only via through the geometric (not
analytical) Jacobian, the orientation error dynamics carry no representation singularity — the
defect that afflicts minimal (Euler-angle) parameterizations.

Key Equations

Attitude-error coordinates. For the base and end-effector, the tracked error uses twice the
quaternion vector part (the small-error gain that makes a faithful
linearization of the rotation-vector error near identity):

with desired frames denoted by the subscript. (Giordano §IV / current_sota §4.1) — only the
vector part appears, hence no representation singularity in the error.

Error-rate map. The rate of a quaternion attitude error maps the body angular velocity through
a configuration-dependent block built from the current error quaternion:

and identically for the EE rotational block
acting on .
(Giordano eqs 24, 25 / current_sota eqs 4.1–4.2) is the skew/cross-product
matrix and the identity. This block is the standard quaternion-propagation map; it
loses rank only at error angle (, ). The full
stacked error-rate Jacobian
and its role in the impedance law and Lyapunov function are developed in
task_space_error_dynamics.

Pointing-error convention (versine). Camera/EE pointing error is reported as an angle via the
versine between the look axis and its desired direction
, never as a raw vector difference
:

(current_sota eq 7.3) — a roll-free scalar that depends only on the camera aim axis; it is the
metric counterpart of the quaternion attitude error, decoupled from any roll about the look axis.

Source Support

  • caccavale2001kinematic — canonical demonstration that
    the unit quaternion removes orientation-representation singularities from CLIK: the geometric
    Jacobian appears in lieu of the analytical Jacobian, and only the vector part of the relative
    quaternion enters the error (their Eqs. 18–20). Free-floating regime (generalized Jacobian),
    but the quaternion error and its rate map are the same operator used here.
  • giordano2019coordinated — origin of the
    error-rate block and the
    error coordinates (eqs 24–25); free-flying circumcentroidal coordinated control (the project’s
    primary control source).
  • task_space_error_dynamics — assembles the per-task quaternion
    error-rate blocks into the stacked that drives the outer loop.
  • closed_loop_inverse_kinematics — the CLIK family where the
    quaternion error first replaces the Euler-angle error to kill representation singularities.
  • coordinated_control — consumes the quaternion error
    and its Jacobian transpose in the impedance control law.
  • exponential_coordinates — the rotation-vector /
    parameterization that linearizes near identity; an alternative global chart.
  • trajectory_tracking — the broader task served; the versine pointing
    metric (eq 7.3) is its attitude-tracking figure of merit.

Open Questions

  • The error-rate block is singular at error
    angle ; confirm the operating envelope never approaches so
    retains full rank throughout a maneuver.
  • Sign/handedness convention for the relative quaternion ( vs. ,
    the double-cover) is not pinned in the master; verify the implementation’s shortest-arc selection
    matches the error gain used in the control law.