Quaternion distance of inner products#
- ahrs.utils.metrics.qeip(q1: ndarray, q2: ndarray) float#
Euclidean distance of inner products between two unit quaternions \(\mathbf{q}_1\) and :mathbf{q}_2` as defined in [Huy09] and [Kuf04]:
\[d(\mathbf{q}_1, \mathbf{q}_2) = 1 - |\mathbf{q}_1\cdot\mathbf{q}_2|\]The error lies within [0, 1], where \(d\) is equal to zero if the quaternions represent the same attitude, and to one if they are completely divergent.
- 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 – Euclidean distance of inner products 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.qeip(q1, q2) 0.48861226940378377 >>> ahrs.utils.qeip(q1, -q1) 0.0