2026-08-21 01:19:10
四元数的两种 notation:Hamilton 和 JPL
四元数(Quaternion)是一种在三维空间旋转表示中常用的数学工具,它由一个实部和三个虚部构成,通常表示为 $mathbf{q}=q_0 + q_1 i + q_2 j + q_3 k$,其中 $i, j, k$ 为虚部的三个基,满足 $i^2=j^2=k^2=-1$。在四元数的应用中,存在两种常见的表示法,即 Hamilton 和 JPL。
一、Hamilton Notation
Hamilton 表示法是数学家 William Rowan Hamilton 引入四元数时所使用的表示法,也是更为广泛接受和使用的表示法。在 Hamilton 表示法中,四元数的虚部基 $i, j, k$ 的相互关系满足 $ijk=-1$。
基于 Hamilton 表示法,单位四元数转化为旋转矩阵的公式为:
$mathbf{R}=begin{bmatrix}1-2q_2^2-2q_3^2 & 2q_1q_2-2q_0q_3 & 2q_1q_3+2q_0q_2 2q_1q_2+2q_0q_3 & 1-2q_1^2-2q_3^2 & 2q_2q_3-2q_0q_1 2q_1q_3-2q_0q_2 & 2q_2q_3+2q_0q_1 & 1-2q_1^2-2q_2^2end{bmatrix}$
这个公式在许多文献和教材中都被广泛使用,包括高翔博士的《视觉 SLAM 十四讲》一书(尽管书中在四元数转旋转矩阵时使用了 JPL convention 的公式,但四元数的定义仍采用的是 Hamilton)。
二、JPL Notation
JPL 表示法是由 NASA Jet Propulsion Laboratory (JPL) 提出的另一种四元数表示法。与 Hamilton 表示法不同,JPL 表示法中四元数的虚部基 $i, j, k$ 的相互关系满足 $ijk=1$。
由于 JPL 表示法与 Hamilton 表示法在虚部基的相互关系上存在根本差异,因此两者在四元数乘法、与其他旋转表示法相互转换时的公式也有所不同。例如,在 JPL 表示法下,单位四元数转化为旋转矩阵的公式是 Hamilton 表示法下公式的转置。
三、两种表示法的比较与选择
尽管四元数存在两种表示法,但它们在本质上都是描述三维空间旋转的数学工具。然而,由于两种表示法在公式和计算上的差异,它们在实际应用中可能会带来一些困惑或争论。
从现实的角度讲,Eigen、Matlab、ROS、Google Ceres Solver 等通用线性代数运算库和机器人操作系统都广泛采用了 Hamilton 表示法。因此,为了兼容性和易用性,建议在实际应用中尽量使用 Hamilton 表示法。
此外,值得注意的是,尽管 JPL 表示法在某些特定领域或文献中可能得到使用,但它并不是四元数的标准表示法。因此,在学术交流和文献引用中,应明确指出所使用的表示法,以避免混淆和误解。

(图片展示了两种表示法下四元数转旋转矩阵的公式对比)
综上所述,四元数的两种表示法——Hamilton 和 JPL——在虚部基的相互关系上存在差异,并导致在公式和计算上的不同。为了兼容性和易用性,建议在实际应用中尽量使用 Hamilton 表示法。