看Artin的《Algebra》已经有一个月了,一直没能写些什么,最近看到\(SO_3\) 群和 \(SU_2\) 群,写的非常有趣,和我以前看的机器人的一些东西可以联系起来。\(SU_2\) 确实完美的将 \(SO_3\) 和四元数沟通起来了。
\(SU_2\) 群
\(SU_2\) 是保证二维Hermitian空间内积不变的 \(SL_2(\mathbb C)\) 的子空间。形式定义如下:
\begin{equation} SU_2 = \left\{A \in SL_2(\mathbb C) | A^* A = I \right\} \end{equation}
上式的\(A^*\) 意为厄米转置。
根据上述定义总可以将 \(SU_2\) 中的元素写成如下形式
\begin{equation} A = \left[ \begin{matrix} u & v \\\ -\overline v & \overline u \end{matrix} \right ] \end{equation}
并有 \(|u|^2 + | v| ^2 = 1\)
更进一步,假设 \(u = x_0 + x_1 i,v = x_2 + x_3 i\) 从而可将 \(A\) 写成向量形式。
\begin{align} A & = x_0 I + x_1 \mathbf i + x_{2} \mathbf j + x_3 \mathbf k \\\ \mathbf i &= \mathrm{diag}\left\{ i, - i \right\} \\\ \mathbf j & = \left[ \begin{matrix} 0 & 1 \\\ -1 & 0 \end{matrix} \right] \\\ \mathbf k & = \left[ \begin{matrix} 0 & i \\\ i & 0 \end{matrix} \right] \end{align}
上式中的表示就是四元数表示,\(\mathbf{i,j,k}\) 均是厄米共轭矩阵, 其实他也是 \(SU_{2}\) 李代数的一组基,它满足四元数的运算律
\begin{align} \mathbf i^{2} = \mathbf j^2 = \mathbf k^2 = -1 \\\ \mathbf {ij} = \mathbf k, \mathbf{jk} = \mathbf i, \mathbf{ki} = \mathbf j \end{align}
又知,\(SU_2\) 满足约束 \(x_0^{2} + x_1^2+x_2^2 + x_3^2=1\) , \(SU_{2}\) 是四维空间中的三维球面 \(\mathbb S^{3}\) , 其拓扑结构比较简单。
公式(3) 也把\(A\) 分解为了有迹部分和迹零部分。也就是
\begin{equation} A = I \cos{\theta} + P \sin{\theta} \end{equation}
其中 \(\mathrm{tr} P = 0\)
\(SO_3\) 群
现在可以谈论 \(SO_{3}\) 了。这里将使用共轭操作。 注意到共轭作用是保持迹不变的(因为不改变特征多项式)。从而它定义了迹零矩阵所构成的向量空间 \(\mathbb V = \mathrm{span}\left<\mathbf{i,j,k} \right>\) 上的群作用。我们将说明这是一个到 \(SO_{3}\) 上的群同态。
定义群作用:
\begin{align} \gamma: SU_2\times \mathbb V & \to \mathbb V \\\ \gamma_{A} U &:= A U A^{*} \\\ U &:= x_1 \mathbf i + x_2 \mathbf j + x_3 \mathbf k \in \mathbb V \end{align}
上述即是共轭操作,故是群作用,即 \(\gamma_A \gamma_B = \gamma_{AB}\)
我们将说明这个群作用是 \(SO_3\) 中的元素,为此需说明:
\(\gamma_{A}\) 不改变 \(U\) 的长度,等价来说,保 \(\mathbb V\) 中的内积,为了便于计算,最好将该内积的定义转移的 \(SU_2\) 中。可以发现以下事实成立:
\begin{align} \left < U,V\right > &= -\frac{1}{2}\mathrm{tr}(UV) \\\ \left < U,V\right > &:= x_1 y_1 + x_2 y_2 + x_3 y_3 \\\ U &:= x_1 \mathbf i + x_2 \mathbf j + x_3\mathbf k \\\ V &:= y_1 \mathbf i + y_2 \mathbf j + y_3\mathbf k \end{align}
通过上述公式不难发现
\[ \left <\gamma_A U,\gamma_A V\right > = -\frac{1}{2}\mathrm{tr}(A UV A^*) = \left < U,V\right > \] ,这说明,该群作用是 \(O_3\) 中的作用。
再证上述作用的矩阵的行列式为1, 这是因为 \(SU_{2}\) 是一个球面,它的拓扑是连通的。\(O_3\) 有两个连通分支: \(SO_3\) 和另一个陪集。\(\gamma_{A}\) 是连续映射, 从而其象是连通的,从而在 \(SO_3\) 中。
现在知道 \(\gamma_A\) 是 \(SO_3\) 中的作用,我们来说明这个旋转的轴是显示给出的,记
\begin{equation} A := I \cos \theta + P \sin \theta \end{equation}
则 \(\gamma_A P = P\) ,这是因为
- \(\mathrm{tr}(P) = 0 \Leftrightarrow P^{2} = I\)
- \(P^* + P = 0\)
通过计算可得。于是 \(P\) 是 \(\gamma_A\) 的转轴。
转轴找到了是 \(P\) , 接下来找旋转角。
视 \(\gamma_{A},\gamma_B\) 为 \(SO_3\) 中的元素则,\(\gamma_{A^{\prime}} = \gamma_B \gamma_A \gamma_B ^{-1}=\gamma_{BAB^{*}}\) 是一个坐标变换不改变旋转角。
又知在 \(SU_2\) 中每个迹相等的类是一个等价类。任意的 \(A\) 必定与 \(B = I \cos \theta + \mathbf i \sin\theta\) 共轭,我们直接计算 \(\gamma_B \mathbf j = \mathbf j \cos 2\theta + \mathbf k \sin 2\theta\) 可得旋转角是 \(2\theta\) ,这也说明了 \(\gamma\) 是到 \(SO_{3}\) 上的同态。
最后我们,来说明这个同态的核。假设 \(A\) 是同态的核中的元素则
\begin{align} \gamma_A U = AUA^{*} = U ,\forall U \in \mathbb V \\\ \Leftrightarrow A(I\cos\theta + U\sin\theta)A^{*} = (I\cos\theta + U\sin \theta), \forall \theta,U \in \mathbb V \end{align}
从而同态的核即为 \(SU_2\) 的中心 \(Z\) , 而它恰是 \(\left\{\pm I\right\}\)
我们将上述的证明总结为定理:
上述的 \(\gamma_{A} U := A U A^{*}, U\in\mathbb V\) 定义了一个从 \(SU_2\) 到 \(SO_3\) 上的群同态,该同态的核为 \(\left\{\pm I\right\}\) 。若 \(A = I\cos \theta + P\sin\theta\) , 其中 \(P \in \mathbb V ,\theta \in [0,\pi)\) 。则: \(\gamma_{A}\) 是 \(\mathbb V\) 上的旋转, 旋转轴为 \(P\) ,旋转角为 \(2\theta\) 。
总结
通过上述定理。我们可以通过四元数计算旋转,四元数表示法最大的便利是能直接看出旋转轴和旋转角,这使得姿态的表达更加便利。