Lie group & Lie algebra


Reference:

  • 《视觉SLAM十四讲》
  • http://www.cs.toronto.edu/~gwtaylor/publications/nips2006mhmublv
  • https://github.com/asheshjain399/RNNexp/tree/srnn/structural_rnn/CRFProblems/H3.6m/mhmublv/Motion

基础概念

外积 (外积的方向垂直于两个向量)

\mathbf{a}\times\mathbf{b}=\left\| \begin{matrix} \mathbf{i}& \mathbf{j}& \mathbf{k} \\ a_1 & a_2& a_3\\ b_1 & b_2& b_3 \end{matrix} \right\|=\left[ \begin{matrix} a_2b_3-a_3b_2 \\ a_3b_1-a_1b_3 \\ a_1b_2-a_2b_1 \end{matrix} \right]=\left[ \begin{matrix} 0 & -a_3& a_2\\ a_3 & 0& -a_1\\ -a_2 & a_1& 0 \end{matrix} \right]\mathbf{b}
即有

这里的为反对称符号,提供了一个向量到矩阵(反对称矩阵,Skew-symmetric)的对应关系。

1、旋转矩阵

坐标 旋转成
于是有
\left[ \begin{matrix} e_1, e_2, e_3 \end{matrix} \right] \left[ \begin{matrix} a_1 \\ a_2 \\ a_3 \end{matrix} \right] = \left[ \begin{matrix} e_1', e_2', e_3' \end{matrix} \right] \left[ \begin{matrix} a_1' \\ a_2' \\ a_3' \end{matrix} \right]
进一步,有
\left[ \begin{matrix} a_1 \\ a_2 \\ a_3 \end{matrix} \right] = \left[ \begin{matrix} e_1^{T}e_1'&e_1^{T}e_2'&e_1^{T}e_3'\\ e_2^{T}e_1'&e_2^{T}e_2'&e_2^{T}e_3'\\ e_3^{T}e_1'&e_3^{T}e_2'&e_3^{T}e_3' \end{matrix} \right] \left[ \begin{matrix} a_1' \\ a_2' \\ a_3' \end{matrix} \right] \triangleq \mathbf{R}\mathbf{a}'
这里的就称为旋转矩阵(且为正交阵)。

特殊正交群(SOG, Special Orthogonal Group)

考虑带平移的旋转:

引入齐次坐标,则有
\left[ \begin{matrix} \mathbf{a'} \\ 1 \end{matrix} \right] = \left[ \begin{matrix} \mathbf{R} & \mathbf{t}\\ \mathbf{0^T} &1 \end{matrix} \right] \left[ \begin{matrix} \mathbf{a} \\ 1 \end{matrix} \right] \triangleq \mathbf{T}\left[ \begin{matrix} \mathbf{a} \\ 1 \end{matrix} \right]
这里为变换矩阵,也是正交阵。

特殊欧式群(SEG, Special Euclidean Group)

2、旋转向量与欧拉角

任何旋转可以由一个旋转轴和一个旋转角来刻画。
于是考虑用一个向量与旋转轴一致,而长度等于旋转角,这个向量就是旋转向量,只需要一个三维向量表示即可,该向量也是后面会提到的李代数

罗德里格斯公式(Rodrigues's Formula)

旋转向量旋转矩阵

其中为反对称符号。
\begin{align} \mathbf{tr}(\mathbf{R})&=\cos\theta\mathbf{tr}(\mathbf{I})+(1-\cos\theta)\mathbf{tr}(\mathbf{n}\mathbf{n}^T)+\sin{\theta}\mathbf{tr}(\mathbf{n}^{\wedge})\\ &=3\cos\theta+(1-\cos\theta)\\ &=1+2\cos\theta \end{align}
p.s. 其中用到了反对称矩阵Trace为0。

于是有,

因为是旋转轴,则

即转轴是旋转矩阵特征值为1对应的特征向量。

比起旋转向量,欧拉角(三个轴的旋转参数)会更加直观,不过会遇到万向锁的问题。且不适合插值和迭代。

3、四元数

旋转矩阵用9个量描述3个自由度,但是具有冗余性;欧拉角和旋转向量虽然紧凑,但是具有奇异性。

复数的乘法表示了复平面上的旋转。
四元数是一种扩展的复数。紧凑没有奇异性。

且满足

简记为:

进一步,用单位四元数(可以表示三维空间任意旋转)。
假设某个旋转是绕单位向量进行了的旋转,则这个旋转的四元数可以表示为:

反之,也可以从单位四元数求对应的旋转轴和夹角:

注意到每加,就变成。即每个旋转可以由两个互为相反数的四元数表示。

P.S. 四元数的逆为

其中,为四元数共轭,虚部取相反数。

四元数表示旋转

设一个三维点以及一个由轴角指定的旋转,令得到的。

将三维空间点用一个虚四元数表示

则将这个点按旋转,有对应这个旋转的四元数:

可以验证,旋转后得到

旋转后的也为纯虚四元数,三个虚部分量即为旋转后的3D点。

四元数&旋转矩阵

对应的旋转矩阵:

假设矩阵,则四元数为

小结


  • 特殊正交群(SOG, Special Orthogonal Group)
  • 特殊欧式群(SEG, Special Euclidean Group)

李代数

考虑旋转矩阵,且满足

进一步假设为随时间的旋转.

关于时间求导:



可以看出是一个反对称矩阵。于是可以找到反对称的三维向量满足

右乘,有

令, 且,做泰勒展开即有

由其可知反应了的导数性质,故称它在SO(3)原点附近的正切空间上。
即有, 且初始条件为, 即可解微分方程得:

  • 结论:给定某个时刻的,我们就能求得一个,它描述了在局部的导数关系。
  • 这里的实际上是一种李代数。

的元素是三维向量或者三维反对称矩阵:
它与SO(3)的关系由指数映射给定:

\mathcal{se}(3)=\left\{\mathbf{\xi}=\left[\mathbf{ \begin{matrix} \mathbf{\rho} \\ \mathbf{\phi} \end{matrix}}\right]\in\mathbb{R}^6, \mathbf{\rho}\in\mathbb{R}^3, \mathbf{\phi}\in\mathcal{so}^3, \mathbf{\xi}^{\wedge} = \left[\begin{matrix} \mathbf{\phi}^{\wedge}&\mathbf{\rho} \\ \mathbf{0}^T & 0 \end{matrix}\right]\in\mathbb{R}^{4\times4}\right\}

推导

这里的是三维向量,令它的模长和方向为、。令为长度为1的方向向量,则有
通过推导可得

你可能感兴趣的:(Lie group & Lie algebra)