李群和李代数(一)——李群李代数的引出及其指数映射

0.知识回顾

描述旋转本身的矩阵叫做旋转矩阵,旋转矩阵是一个行列式为1的正交矩阵 ,反之,行列式为1的正交矩阵也是一个旋转矩阵。将n维旋转矩阵的集合定义如下:
S O ( n ) = { R ∈ R n ∗ n ∣ R R T = I , d e t ( R ) = 1 } SO(n)=\{R\in \mathbb{R}^{n*n}|RR^T=I,det(R)=1\} SO(n)={RRnnRRT=Idet(R)=1}
SO(n)是特殊正交群。

我们把旋转和平移写在一个矩阵T里,将其变成四维向量,成为齐次坐标,矩阵T称为变换矩阵。对于变换矩阵,它具有比较特别的结构,左上角为旋转矩阵,右侧为平移向量,左下角为0向量,右下角为1。这种矩阵为特殊欧式群。
S E ( 3 ) = { T = [ R t 0 1 ] ∈ R 4 ∗ 4 ∣ R ∈ S O ( 3 ) , t ∈ R 3 } SE(3)=\{T=\left[ \begin{matrix} R & t\\ 0& 1 \end{matrix} \right]\in \mathbb{R}^{4*4} |R\in SO(3),t\in \mathbb{R}^{3}\} SE(3)={T=[R0t1]R44RSO(3),tR3}
在旋转矩阵或者变换矩阵中,它们是对加法不封闭的,就是说,对于任意两个旋转矩阵 R 1 R_1 R1 R 2 R_2 R2,按照矩阵加法的定义,和不再是一个旋转矩阵。但是乘法对应着旋转或者变换的复合,两个旋转矩阵相乘表示做了两次旋转。对于这种只有一个运算的集合,我们称之为群。

1.群

群是一种集合加上一种运算的代数结构,我们把集合记作A,运算记作 · ,那么群可以记作G=(A,·)。

1.1 李群

李群是指具有连续(光滑)性质的群,SO(n)和SE(n)在实数空间上是连续的,我们可以直观地想象一个刚体能够连续地在空间中运动,所以它们是李群。

1.2 李代数引出

考虑任意旋转矩阵R,我们知道它满足:
R R T = I RR^T=I RRT=I
现在,R是某个相机的旋转,他会随时间连续地变化,即为时间的函数:R(t)。由于他仍是旋转矩阵,有:
R ( t ) R ( t ) T = I R(t)R(t)^T=I R(t)R(t)T=I
在等式两边对时间求导,得到:
R ˙ ( t ) R ( t ) T + R ( t ) R ˙ ( t ) T = 0 \dot{R}(t)R(t)^T+R(t)\dot{R}(t)^T=0 R˙(t)R(t)T+R(t)R˙(t)T=0
整理得:
R ˙ ( t ) R ( t ) T = − ( R ( t ) R ˙ ( t ) T ) T \dot{R}(t)R(t)^T=-(R(t)\dot{R}(t)^T)^T R˙(t)R(t)T=(R(t)R˙(t)T)T
可以看出 R ˙ ( t ) R ( t ) T \dot{R}(t)R(t)^T R˙(t)R(t)T是一个反对称矩阵,即满足 A T = − A A^T=-A AT=A

这里引入一个^符号,将一个向量变成了反对称矩阵,同理,对于任意反对称矩阵,我们也能找到唯一与之对应的向量,用符号v表示。
a ∧ = A = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] , A ∨ = a a^ \wedge=A=\left[ \begin{matrix} 0&-a_3 & a_2\\ a_3&0& -a_1\\ -a_2&a_1&0 \end{matrix} \right],A^\vee=a a=A= 0a3a2a30a1a2a10 ,A=a
于是,由于 R ˙ ( t ) R ( t ) T \dot{R}(t)R(t)^T R˙(t)R(t)T是个反对称矩阵,我们可以找到一个三维向量 ϕ ( t ) ∈ R 3 \phi(t) \in \mathbb{R}^{3} ϕ(t)R3与之对应:
R ˙ ( t ) R ( t ) T = ϕ ( t ) ∧ \dot{R}(t)R(t)^T=\phi(t)^ \wedge R˙(t)R(t)T=ϕ(t)
等式两边右乘R(t),由于R为正交矩阵,有:
R ˙ ( t ) R ( t ) = ϕ ( t ) ∧ R ( t ) = [ 0 − ϕ 3 ϕ 2 ϕ 3 0 − ϕ 1 − ϕ 2 ϕ 1 0 ] R ( t ) \dot{R}(t)R(t)=\phi(t)^ \wedge R(t)=\left[ \begin{matrix} 0&-\phi_3 & \phi_2\\ \phi_3&0& -\phi_1\\ -\phi_2&\phi_1&0 \end{matrix} \right]R(t) R˙(t)R(t)=ϕ(t)R(t)= 0ϕ3ϕ2ϕ30ϕ1ϕ2ϕ10 R(t)
可以看到,每对旋转矩阵求一次导数,只需左乘一个 ϕ ( t ) \phi(t) ϕ(t)矩阵即可,考虑 t 0 = 0 t_0=0 t0=0时,设此时旋转矩阵为 R ( 0 ) = I R(0)=I R(0)=I。按照导数定义,可以把 R ( t ) R(t) R(t)在t=0附近进行一阶泰勒展开:
R ( t ) = R ( t 0 ) + R ˙ ( t 0 ) ( t − t 0 ) = I + ϕ ( t ) ∧ ( t ) R(t)=R(t_0)+\dot{R}(t_0)(t-t_0) \\=I+\phi(t)^ \wedge(t) R(t)=R(t0)+R˙(t0)(tt0)=I+ϕ(t)(t)
我们看到 ϕ \phi ϕ反应了R的导数性质,故称他在SO(3)原点附近的正切空间上,同时在 t 0 t_0 t0附近,设 ϕ ( t 0 ) = ϕ 0 \phi(t_0)=\phi_0 ϕ(t0)=ϕ0。那么有:
R ˙ ( t ) = ϕ ( t ) ∧ R ( t ) = ϕ 0 ∧ R ( t ) \dot{R}(t)=\phi(t)^ \wedge R(t)=\phi_0^ \wedge R(t) R˙(t)=ϕ(t)R(t)=ϕ0R(t)
上式是一个关于R的微分方程,而且有初始值 R ( 0 ) = I R(0)=I R(0)=I,解得:
R ( t ) = e x p ( ϕ 0 t ) R(t)=exp(\phi_0t) R(t)=exp(ϕ0t)
以上式子说明在t=0附近,旋转矩阵可以由 e x p ( ϕ 0 t ) exp(\phi_0t) exp(ϕ0t)计算出来。

可以说明下面两个关系:

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

2.给定某个向量 ϕ \phi ϕ,矩阵指数 e x p ( ϕ 0 t ) exp(\phi_0t) exp(ϕ0t)的计算就是李群和李代数间的指数/对数映射。

1.3 李代数的意义

1.应用意义

在视觉slam中,我们需要不断计算相机的位姿和构建地图,相机的位姿表现在其变换矩阵T,由于干扰的存在,我们无法准确获得所需要的信息,所以我们转而求其最小误差。

假设我们有N个三维点p和对应的观测值z,我们的目标就是寻找一个最佳位姿T,使得整体误差最小化,如下式:
m i n T J ( T ) = ∑ i = 1 N ∣ ∣ z i − T p i ∣ ∣ 2 2 \underset{T}{min}J(T)=\sum_{i = 1} ^N||z_i-Tp_i||^2_2 TminJ(T)=i=1N∣∣ziTpi22
要求解上面的方程,就是要求目标函数J对T的导数,但是由于T所在的变换矩阵群(SO(3))对加法不封闭,无法直接求取,所以我们需要引入一个新的量,通过对该量的计算间接获得对T的求导,这个引入的量就是李代数

2.数学意义

每个李群都有与之对应的李代数。李代数描述了李群的局部性质(局部导数),准确的说是单位元附近的正切空间。

1.4 李代数定义

李代数有一个集合 V \mathbb{V} V、一个数域 F \mathbb{F} F和一个二元运算[,]组成,如果满足以下几条性质,则称( V \mathbb{V} V F \mathbb{F} F,[,])为一个李代数,记作g。

1.封闭性 ∀ X , Y ∈ V , [ X , Y ] ∈ V \forall X,Y\in \mathbb{V},[X,Y]\in \mathbb{V} X,YV,[X,Y]V

2.双线性 ∀ X , Y , Z ∈ V , a , b ∈ F \forall X,Y,Z\in \mathbb{V},a,b\in \mathbb{F} X,Y,ZV,a,bF 有 [aX+bY,Z]=a[X,Z]+b[Y,Z],[Z,aX+bY]=a[Z,X]+b[Z,Y]

3.自反性 ∀ X ∈ V , [ X , X ] = 0 \forall X\in \mathbb{V},[X,X]=0 XV,[X,X]=0

4.雅克比等价 ∀ X , Y , Z ∈ V \forall X,Y,Z\in \mathbb{V} X,Y,ZV [X,[Y,Z]]+[Z,[X,Y]]+[Y,[Z,X]]=0

相比于群中较为简单为二元运算,李括号[,]表达了两个元素的差异。

1.5 李代数so(3)

之前提到的 ϕ \phi ϕ,事实上就是一种李代数。SO(3)对应的李代数就是定义在 R 3 \mathbb{R}^3 R3上的向量,我们记作 Φ \Phi Φ
s o ( 3 ) = { ϕ ∈ R 3 , Φ = ϕ 0 ∧ ∈ R 3 ∗ 3 } so(3)=\{\phi\in \mathbb{R}^{3},\Phi=\phi_0^ \wedge \in \mathbb{R}^{3*3}\} so(3)={ϕR3,Φ=ϕ0R33}
so(3)是由三维向量组成的集合,每个向量对应一个反对称矩阵,可以用于表达旋转矩阵的导数。他与SO(3)的关系有指数映射给定:
R ( t ) = e x p ( ϕ 0 t ) R(t)=exp(\phi_0t) R(t)=exp(ϕ0t)

1.6 SO(3)上的指数映射

这个问题就是如何计算 e x p ( ϕ 0 t ) exp(\phi_0t) exp(ϕ0t)

任意矩阵的指数映射可以写成一个泰勒展开,但是之后只有在收敛的情况下才会有结果,其结果仍是一个矩阵:
e x p ( A ) = ∑ n = 0 ∞ 1 n ! A n exp(A)=\sum_{n=0}^\infty\frac{1}{n!}A^n exp(A)=n=0n!1An
带入 ϕ ∧ \phi^ \wedge ϕ,得到:
e x p ( ϕ ∧ ) = ∑ n = 0 ∞ 1 n ! ϕ 0 ∧ n exp(\phi^ \wedge)=\sum_{n=0}^\infty\frac{1}{n!} {\phi_0^\wedge} ^n exp(ϕ)=n=0n!1ϕ0n
但是上式无法直接计算,因为需要计算矩阵的无穷次幂。下面进行一种简单的方法。

由于 ϕ \phi ϕ是三维向量,可以定义他的模长和方向,分别记作 θ \theta θ和a。这里 ϕ = θ a \phi=\theta a ϕ=θa,a为一个长度为1的方向向量。对于 a ∧ a^ \wedge a有以下性质:
a ∧ a ∧ = [ − a 2 2 − a 3 2 a 1 a 2 a 1 a 3 a 1 a 2 − a 1 2 − a 3 2 a 2 a 3 a 1 a 3 a 2 a 3 − a 1 2 − a 2 2 ] = a a T − I a^\wedge a^\wedge=\left[ \begin{matrix} -a_2^2-a_3^2&a_1a_2 & a_1a_3\\ a_1a_2&-a_1^2-a_3^2& a_2a_3\\ a_1a_3&a_2a_3&-a_1^2-a_2^2 \end{matrix} \right]=aa^ T-I\\ aa= a22a32a1a2a1a3a1a2a12a32a2a3a1a3a2a3a12a22 =aaTI

a ∧ a ∧ a ∧ = a ∧ ( a a T − I ) = − a ∧ a^\wedge a^\wedge a^\wedge=a^\wedge(aa^T-I)=-a^\wedge aaa=a(aaTI)=a

上面两个式子提供了处理 a ∧ a^\wedge a高阶项的方法,这样可以把指数映射写成:
e x p ( ϕ ∧ ) = e x p ( θ a ∧ ) = ∑ n = 0 ∞ 1 n ! ( θ a ∧ ) n = I + θ a ∧ + 1 2 ! θ 2 a ∧ a ∧ + 1 3 ! θ 3 a ∧ a ∧ a ∧ ⋯ = a a T − a ∧ a ∧ + θ a ∧ + 1 2 ! θ 2 a ∧ a ∧ − 1 3 ! θ 3 a ∧ ⋯ = a a T + ( θ − 1 3 ! θ 3 + 1 5 ! θ 5 − ⋯   ) a ∧ − ( 1 − 1 2 ! θ 2 + 1 4 ! θ 4 − ⋯   ) a ∧ a ∧ = a ∧ a ∧ + I + s i n θ a ∧ − c o s θ a ∧ a ∧ = ( 1 − c o s θ ) a ∧ a ∧ + I + s i n θ a ∧ = c o s θ I + ( 1 − c o s θ ) a a T + s i n θ a ∧ exp(\phi^ \wedge)=exp(\theta a^ \wedge)=\sum_{n=0}^\infty\frac{1}{n!} {(\theta a^ \wedge} )^n\\ =I+\theta a^ \wedge+\frac{1}{2!}\theta^2a^ \wedge a^ \wedge+\frac{1}{3!}\theta^3a^ \wedge a^ \wedge a^ \wedge \cdots\\ =aa^T-a^ \wedge a^ \wedge+\theta a^ \wedge+\frac{1}{2!}\theta^2a^ \wedge a^ \wedge-\frac{1}{3!}\theta^3a^ \wedge \cdots\\ =aa^T+(\theta-\frac{1}{3!}\theta^3+\frac{1}{5!}\theta^5 -\cdots)a^ \wedge-(1-\frac{1}{2!}\theta^2+\frac{1}{4!}\theta^4- \cdots)a^ \wedge a^ \wedge \\ =a^ \wedge a^ \wedge+I+sin\theta a^ \wedge-cos\theta a^ \wedge a^ \wedge\\ =(1-cos\theta)a^ \wedge a^ \wedge+I+sin\theta a^ \wedge \\=cos\theta I+(1-cos\theta)aa^T+sin\theta a^ \wedge exp(ϕ)=exp(θa)=n=0n!1(θa)n=I+θa+2!1θ2aa+3!1θ3aaa=aaTaa+θa+2!1θ2aa3!1θ3a=aaT+(θ3!1θ3+5!1θ5)a(12!1θ2+4!1θ4)aa=aa+I+sinθacosθaa=(1cosθ)aa+I+sinθa=cosθI+(1cosθ)aaT+sinθa

经过以上计算,得到:
e x p ( ϕ ∧ ) = c o s θ I + ( 1 − c o s θ ) a a T + s i n θ a ∧ exp(\phi^ \wedge)=cos\theta I+(1-cos\theta)aa^T+sin\theta a^ \wedge exp(ϕ)=cosθI+(1cosθ)aaT+sinθa
可以发现上式就是罗德里格斯公式,so(3)就是由所谓的旋转向量组成的空间,指数映射即罗德里格斯公式,通过这个公式,我们把任意一个向量对应到一个位于SO(3)中的旋转矩阵。

罗德里格斯公式就是表明旋转向量到旋转矩阵的转换过程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6dVI3FiO-1690698811035)(C:\Users\13611\AppData\Roaming\Typora\typora-user-images\image-20230730143034186.png)]

本文主要参考《视觉SLAM十四讲》
以发现上式就是罗德里格斯公式,so(3)就是由所谓的旋转向量组成的空间,指数映射即罗德里格斯公式,通过这个公式,我们把任意一个向量对应到一个位于SO(3)中的旋转矩阵。

罗德里格斯公式就是表明旋转向量到旋转矩阵的转换过程。
请添加图片描述

本文主要参考《视觉SLAM十四讲》

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anthony-36

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值