李群和李代数——公式推导(1)

        开始本文前,我已经有《视觉SLAM十四讲-高翔》前三章基础。

目录

李群李代数基础

李群

李代数的引出


李群李代数基础

        在前几章介绍了旋转矩阵和变换矩阵,当时,我们说三维旋转矩阵构成了特殊正交群SO(3),而变换矩阵构成了特殊欧氏群 SE(3)。

SO(3)=\left \{ \textbf{R} \in \mathbb{R}^{3\times 3}\mid \textbf{R}\textbf{R}^{T}=I,det(\textbf{R})=1\right \}

         SE(3)=\left \{ \textbf{T}=\begin{bmatrix} \textbf{R} & \textbf{t}\\ \textbf{0}^{T} & 1 \end{bmatrix} \in \mathbb{R}^{4\times 4}\mid \textbf{R}\in SO(3),\textbf{t}\in \mathbb{R}^{3}\right \}

        这里可以引出,无论是旋转矩阵还是变换矩阵,他们对加法都是不封闭的。对于任意两个旋转矩阵R1,R2,他们按照矩阵加法的定义,和不再是一个旋转矩阵:

\textbf{R}_{1}+\textbf{R}_{2}\notin SO(3)

对于变换矩阵亦是如此。我们发现,这两种矩阵并没有良好定义的加法,相对的,它们只 有一种较好的运算:乘法。SO(3) SE(3) 关于乘法是封闭的:

\textbf{R}_{1}\textbf{R}_{2}\in SO(3),\textbf{T}_{1}\textbf{T}_{2}\in SE(3)

两次旋转矩阵相乘表示做了两次旋转,对于这种只有一个运算的集合,我们叫它做群。

群(Group)是一种集合加上一种运算的代数结构。我们把集合记作 A,运算记作 ·, 那么群可以记作 G = (A, ·)。群要求这个运算满足以下几个条件:

1.封闭性    2.结合律     3.幺元   4.逆

详见https://zhuanlan.zhihu.com/p/115658697

李群

李群是指具有连续(光滑)性质的群。像整数群 Z 那样离散的群没有连续性质,所以不是李群。而 SO(n) SE(n),它们在实数空间上是连续的。我们能够直观地想象一个刚体能够连续地在空间中运动,所以它们都是李群

李代数的引出

对于任意的旋转矩阵R,满足

\textbf{R}\textbf{R}^{T}=\textbf{I}

在实际中,用R表示相机或其他传感器的旋转,它会随时间t变化,即为时间的函数:R(t),它仍是旋转矩阵,所以依旧满足上式,则有

\textbf{R}(t)\textbf{R}(t)^{T}=\textbf{I}

对上式左右两边同时求导,可得

\dot{\textbf{R}}(t)\textbf{R}(t)^{T}+\textbf{R}(t)\dot{\textbf{R}}(t)^{T}=0

将式子移项,对-\textbf{R}(t)\dot{\textbf{R}}(t)^{T}转置外移,整理可以得到

\dot{\textbf{R}}(t)\textbf{R}(t)^{T}=-(\dot{\textbf{R}}(t)\textbf{R}(t)^{T})^{T}

这条等式就可以看出\dot{\textbf{R}}(t)\textbf{R}(t)^{T}是一个反对称矩阵

曾经叉积的学习中,引入了^符号,把一个向量变成了反对称矩阵同理,对于任意反对称矩阵,我们亦能找到一个与之对应的向量。把这个运算用符号 表示:

\textbf{a}\times \textbf{b}=\begin{bmatrix} \textbf{i} &\textbf{j} &\textbf{k} \\ a_{1} & a_{2} &a_{3} \\ b_{1} &b_{2} &b_{3} \end{bmatrix}=\begin{bmatrix} a_{2}b_{3}-a_{3}b_{2}\\a_{3}b_{1}-a_{1}b_{3} \\ a_{1}b_{2}-a_{2}b_{1} \end{bmatrix}=\begin{bmatrix} 0 &-a_{3} & a_{2}\\ a_{3} & 0 & -a_{1}\\ -a_{2} & a_{1} & 0 \end{bmatrix}\textbf{b}\triangleq\textbf{a}^{\wedge }\textbf{b}

\textbf{a}^{\wedge }=\textbf{A}=\begin{bmatrix} 0 &-a_{3} &a_{2} \\ a_{3} & 0 & -a_{1}\\ -a_{2} & a_{1} & 0 \end{bmatrix}, \textbf{A}^{\vee }=\textbf{a}

可以理解成\textbf{a}^{\wedge }向量到矩阵的变换,\textbf{a}^{\vee }矩阵到向量的变换。

在上方已经得出\dot{\textbf{R}}(t)\textbf{R}(t)^{T}是反对称矩阵,可以找一个三维向量\phi (t)^{\wedge }\in \mathbb{R}^{3}与之对应,于是有:

\dot{\textbf{R}}(t)\textbf{R}(t)^{T}=\phi (t)^{\wedge }

等式两边同时R(t),由于R为正交阵,有:

\dot{\textbf{R}}(t)=\phi (t)^{\wedge }\textbf{R}(t)=\begin{bmatrix} 0 & -\phi _{3} & \phi _{2} \\ \phi _{3} & 0 & -\phi _{1} \\ -\phi _{2}& \phi _{1} & 0 \end{bmatrix}\textbf{R}(t)

可以看到,每对旋转矩阵求一次导数,只需左乘一个\phi (t)^{\wedge }\ 矩阵即可。为方便讨论,我们设 t0 = 0,并设此时旋转矩阵为 R(0) = I。按照导数定义,可以把 R(t) 0 附近进行一阶泰勒展开:

\textbf{R}(t)\approx \textbf{R}(t_{0})+ \textbf{R}(t_{0})(t-t_{0})=\textbf{I}+\phi (t_{0})^{\wedge }(t)

我们看到 ϕ 反映了 R 的导数性质,故称它在 SO(3) 原点附近的正切空间 (Tangent Space) 上。同时在 t0 附近,设 ϕ 保持为常数 ϕ(t0) = ϕ0。则有:

\dot{\textbf{R}}(t)=\phi (t_{0})^{\wedge }\textbf{R}(t)=\phi _{0}^{\wedge }\textbf{R}(t)

上式是一个关于 R 的微分方程,而且我们知道初始值 R(0) = I,下面进行求解:

这里引出齐次一阶线性方程方便读者进行理解:

{y}'+P(x)y=0             分离变量得到   \frac{dy}{y}=-P(x)dx

两边同时积分,得到ln\left | y \right |=-\int P(x)dx+C_{1}

也可以表示为y=\pm e^{C_{!}-\int P(x)dx}=Ce^{-\int P(x)dx}

那么也就不难解出

\textbf{R}(t)=exp(\phi _{0}^{\wedge }t)=e^{\phi _{0}^{\wedge }t}

由于做了一定的假设,所以它只在 t = 0 附近有效。

通过推导,我们知道了旋转矩阵 R 与另一个反对称矩阵 \phi _{0} 通过指数关系发生了联系。也就是说,当我们知道某个时刻的 R 时,存在一个向量 ϕ,它们满足这个矩阵指数关系。

给定某时刻的 R,我们就能求得一个 ϕ,它描述了 R 在局部的导数关系。ϕ 正是对应到 SO(3) 上的李代数 so(3)。

矩阵指数 exp(\phi ^{\wedge })事实上正是李群与李代数间的指数/对数映射。

下一篇会详细说明李代数

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值