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).
Related Topics
- 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.