Quaternion Angle Difference#
- ahrs.utils.metrics.qad(q1: ndarray, q2: ndarray) float#
The quaternion angular difference between two unit quaternions \(\mathbf{q}_1\) and :mathbf{q}_2` as defined in [MGFL17]:
\[d(\mathbf{q}_1, \mathbf{q}_2) = \arccos(2\langle\mathbf{q}_1,\mathbf{q}_2\rangle^2-1)\]The error lies within: [0, \(\pi\)]
- Parameters:
q1 (numpy.ndarray) – First quaternion, or set of quaternions, to compare.
q2 (numpy.ndarray) – Second quaternion, or set of quaternions, to compare.
- Returns:
d – Angle difference between given unit quaternions.
- Return type:
float
- Raises:
ValueError – If the quaternions are not of the same shape.
TypeError – If the quaternions are not of type list or numpy.ndarray.
Examples
>>> q1 = ahrs.Quaternion(random=True) >>> q1.view() Quaternion([ 0.94185064, 0.04451339, -0.00622856, 0.33301221]) >>> q2 = ahrs.Quaternion(random=True) >>> q2.view() Quaternion([-0.51041283, -0.38336653, 0.76929238, -0.0264211 ]) >>> ahrs.utils.qad(q1, q2) 2.0679949008393335 >>> ahrs.utils.qad(q1, -q1) 0.0