具身智能新手名词表English

四元数双倍覆盖

Quaternion Double Cover进阶

单位四元数 q 和 −q 表示同一个旋转,每个姿态都对应两个四元数。

用单位四元数 q = (w, x, y, z) 表示旋转时,q 和 −q 得到完全相同的旋转矩阵:旋转公式对 q 是二次的,符号相互抵消。数学上,单位四元数组成的三维球面 S³ 到旋转群 SO(3) 是二对一映射(双倍覆盖),每个姿态对应球面上一对对径点。这在具身智能里是常见坑:同一个末端朝向在数据里可能时而是 q、时而是 −q,网络直接回归四元数并用普通 L2 损失,会把相同的姿态当成相差很大;衡量差异应该用 1 − |q₁·q₂|,或取 ‖q − q̂‖ 与 ‖q + q̂‖ 中较小者。做球面插值前若点积为负要先翻号,否则会绕远路。Zhou 等人(2019)进一步证明四维及以下的旋转表示都不连续,所以不少策略改用 6D 旋转表示。

例子绕 z 轴转 90° 的四元数是 q = (0.707, 0, 0, 0.707)(w 在前);−q = (−0.707, 0, 0, −0.707) 相当于多转一整圈 360°,姿态完全一样。常见的规范化做法是强制 w ≥ 0。

也叫
q 与 -q 等价、四元数符号歧义、Quaternion Sign Ambiguity、双覆盖
相关
四元数、6D 旋转表示、球面线性插值、旋转测地距离、特殊正交群 SO(3)、四元数分量顺序约定(wxyz / xyzw)
来源
Wikipedia: Quaternions and spatial rotation
Wikipedia: 3D rotation group(S³ 到 SO(3) 的二对一覆盖)
On the Continuity of Rotation Representations in Neural Networks (arXiv 1812.07035)

在完整名词表里查看 →