李群与李代数的理解

前言

机器人在二维或三维空间中的平移和旋转可以通过旋转矩阵R和平移向量t进行表示,对机器人进行定位或者状态估计就是求解R和t。定位或状态估计时,经常需要对以机器人位姿(R和t)为自变量的函数f(R,t)进行优化,不可避免地需要对R和t进行求导:
f ( x ) ˙ = l i m Δ x → 0 f ( x + Δ x ) − f ( x ) Δ x \dot{f(x)}=\underset{\Delta x\rightarrow0}{lim}\frac{f(x+\Delta x)-f(x)}{\Delta x} f(x)˙=Δx0limΔxf(x+Δx)f(x)
t是向量,满足向量的数乘和加法,但是R是矩阵,无法直接相加相减,为了解决旋转矩阵求导的问题,需要借助李群和李代数这个工具。

1.群(Group)

a group is a set equipped with a binary operation that combines any two elements to form a third element in such a way that three conditions called group axioms are satisfied, namely associativity, identity and invertibility. 维基百科里面的解释,简而言之,群就是集合加上二元运算的一种代数结构。百度百科中,群满足四个性质:封闭性、结合律、幺元和逆元。
在这里插入图片描述
所有的实数和加法构成了一个“加群”,但是集合不只是数的集合,二元运算也不仅限于加减乘除,根据研究的需要可以任意定义,只要满足群的四个性质,都构成了群。
旋转矩阵与乘法构成了旋转矩阵群,SO(2),SO(3)
变换矩阵与乘法构成了变换矩阵群,SE(2),SE(3)

2.流形(Manifold)

In mathematics, a manifold is a topological space that locally resembles Euclidean space near each point. 维基百科中,流形是由局部具有欧几里得性质的点构成的拓扑空间。一维流形是线或圆,但不是“8”字形;二维流形是面,例如平面、球面或环面。

3.李群(Lie Group)与李代数(Lie Algebra)

In mathematics, a Lie group is a group that is also a differentiable manifold. 维基百科中,李群是一个具备可微流形性质的群。李代数代表了李群单位元附近的正切空间,是线性的向量空间。通过建立李群与李代数的联系,将非线性连续流形转移到线性空间中,是求解问题的关键。

1.李群与李代数的关系

(1)从图上直观描述:

在这里插入图片描述
李群为蓝色球面,为李群的单位元(Identity),通过指数映射,所有通过单位元的直线都会产生一条围绕流形的路径。同理群中的每一个元素都会通过对数映射到李代数向量空间。以至于李群中所有的弯曲的、非线性的运算都能在李代数中进行等价,转为线性的运算。这也是为什么在进行旋转矩阵求导的时候引入李群和李代数的原因。

(2)由旋转矩阵推导李代数

旋转矩阵满足,当旋转随时间变化时,
R ( t ) R ( t ) T = I \boldsymbol{R}(t) \boldsymbol{R}(t)^{T}=\boldsymbol{I} R(t)R(t)T=I
两侧对时间求导:
R ˙ ( t ) R ( t ) T + R ( t ) R ˙ ( t ) T = 0 \dot{\boldsymbol{R}}(t) \boldsymbol{R}(t)^{T}+\boldsymbol{R}(t) \dot{\boldsymbol{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{\boldsymbol{R}(t)} \boldsymbol{R}(t)^{T}=-\left(\dot{\boldsymbol{R}}(t) \boldsymbol{\boldsymbol { R } ( t ) ^ { T }} \right)^{T} R(t)˙R(t)T=(R˙(t)R(t)T)T
可以发现, R ( t ) ˙ R ( t ) T \dot{\boldsymbol{R}(t)} \boldsymbol{R}(t)^{T} R(t)˙R(t)T是一个反对称矩阵,记为:
R ˙ ( t ) R ( t ) T = ϕ ( t ) ∧ \dot{\boldsymbol{R}}(t) \boldsymbol{R}(t)^{T}=\phi(t)^{\wedge} R˙(t)R(t)T=ϕ(t)
两边右乘 R ( t ) R(t) R(t):
R ˙ ( t ) = ϕ ( t ) ∧ R ( t ) \dot{\boldsymbol{R}}(t)=\phi(t)^{\wedge} \boldsymbol{R}(t) R˙(t)=ϕ(t)R(t)
反对称符号: a ∧ = A = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] , A ∨ = a \boldsymbol{a}^{\wedge}=\boldsymbol{A}=\left[\begin{array}{ccc} 0 & -a_{3} & a_{2} \\ a_{3} & 0 & -a_{1} \\ -a_{2} & a_{1} & 0 \end{array}\right], \quad \boldsymbol{A}^{\vee}=\boldsymbol{a} a=A=0a3a2a30a1a2a10,A=a
单位元( t 0 = 0 , R ( 0 ) = I t_{0}=0, R(0)=I t0=0,R(0)=I)附近进行泰勒展开:
R ( t ) ≈ R ( t 0 ) + R ˙ ( t 0 ) ( t − t 0 ) = I + ϕ ( t 0 ) ∧ ( t ) . \begin{aligned} \boldsymbol{R}(t) & \approx \boldsymbol{R}\left(t_{0}\right)+\dot{\boldsymbol{R}}\left(t_{0}\right)\left(t-t_{0}\right) \\ &=\boldsymbol{I}+{\boldsymbol{\phi}\left(t_{0}\right)^{\wedge}}(t) . \end{aligned} R(t)R(t0)+R˙(t0)(tt0)=I+ϕ(t0)(t).
ϕ \phi ϕ具有一阶导数性质,位于李群的正切空间(tangent space)中。
t 0 t_0 t0附近,假设 ϕ \phi ϕ不变,则有微分方程:
R ˙ ( t ) = ϕ ( t 0 ) ∧ R ( t ) = ϕ 0 ∧ R ( t ) \dot{\boldsymbol{R}}(t)=\phi\left(t_{0}\right)^{\wedge} \boldsymbol{R}(t)=\phi_{0}^{\wedge} \boldsymbol{R}(t) R˙(t)=ϕ(t0)R(t)=ϕ0R(t)
根据初始条件 t 0 = 0 , R ( 0 ) = I t_{0}=0, R(0)=I t0=0,R(0)=I,求解微分方程:
R ( t ) = exp ⁡ ( ϕ 0 ∧ t ) \boldsymbol{R}(t)=\exp \left(\phi_{0}^{\wedge} t\right) R(t)=exp(ϕ0t)
总结:通过指数映射(Exponential map)将李代数映射到了李群中。

(3)李代数与李括号

在这里插入图片描述
已知李代数:
s o ( 3 ) = { ϕ ∈ R 3 , Φ = ϕ ∧ ∈ R 3 × 3 } \mathfrak{s o}(3)=\left\{\phi \in \mathbb{R}^{3}, \Phi=\phi^{\wedge} \in \mathbb{R}^{3 \times 3}\right\} so(3)={ϕR3,Φ=ϕR3×3}
其中:
Φ = ϕ ∧ = [ 0 − ϕ 3 ϕ 2 ϕ 3 0 − ϕ 1 − ϕ 2 ϕ 1 0 ] ∈ R 3 × 3 \Phi=\phi^{\wedge}=\left[\begin{array}{ccc} 0 & -\phi_{3} & \phi_{2} \\ \phi_{3} & 0 & -\phi_{1} \\ -\phi_{2} & \phi_{1} & 0 \end{array}\right] \in \mathbb{R}^{3 \times 3} Φ=ϕ=0ϕ3ϕ2ϕ30ϕ1ϕ2ϕ10R3×3
李括号运算:
[ ϕ 1 , ϕ 2 ] = ( Φ 1 Φ 2 − Φ 2 Φ 1 ) ∨ \left[\phi_{1}, \phi_{2}\right]=\left(\Phi_{1} \Phi_{2}-\Phi_{2} \Phi_{1}\right)^{\vee} [ϕ1,ϕ2]=(Φ1Φ2Φ2Φ1)

2.指数映射和对数映射

李群既是一个群也是一个流形,既满足群的四个性质也满足流形的可微性质,还具有指数映射和对数映射的性质。

(1))指数映射的求解

前面已经求得,但是由于是矩阵,如何对矩阵指数运算?
还是泰勒展开。。。
exp ⁡ ( ϕ ∧ ) = ∑ n = 0 ∞ 1 n ! ( ϕ ∧ ) n \exp \left(\phi^{\wedge}\right)=\sum_{n=0}^{\infty} \frac{1}{n !}\left({\left.\phi^{\wedge}\right)}^{n}\right. exp(ϕ)=n=0n!1(ϕ)n
单位向量有如下性质:
a ∧ a ∧ = a a T − I , a ∧ a ∧ a ∧ = − a ∧ \begin{array}{l} \boldsymbol{a}^{\wedge} {\boldsymbol{a}^{\wedge}=\boldsymbol{a a}^{T}-\boldsymbol{I}}, \\ \boldsymbol{a}^{\wedge} \boldsymbol{a}^{\wedge} \boldsymbol{a}^{\wedge}=-\boldsymbol{a}^{\wedge} \end{array} aa=aaTI,aaa=a
ϕ ∧ = θ a ∧ \phi^{\wedge}=\theta{a}^{\wedge} ϕ=θa,得到罗德里格斯公式:
exp ⁡ ( θ a ∧ ) = cos ⁡ θ I + ( 1 − cos ⁡ θ ) a a T + sin ⁡ θ a ∧ \exp \left(\theta \boldsymbol{a}^{\wedge}\right)=\cos \theta \boldsymbol{I}+(1-\cos \theta) \boldsymbol{a} \boldsymbol{a}^{T}+\sin \theta \boldsymbol{a}^{\wedge} exp(θa)=cosθI+(1cosθ)aaT+sinθa
指数映射求解完成。

(2)对数映射的求解

给定旋转矩阵R,如何求 ϕ \phi ϕ呢?
ϕ = ln ⁡ ( R ) ∨ = ( ∑ n = 0 ∞ ( − 1 ) n n + 1 ( R − I ) n + 1 ) ∨ \phi=\ln (\boldsymbol{R})^{\vee}=\left(\sum_{n=0}^{\infty} \frac{(-1)^{n}}{n+1}(\boldsymbol{R}-\boldsymbol{I})^{n+1}\right)^{\vee} ϕ=ln(R)=(n=0n+1(1)n(RI)n+1)
这样求解比较复杂,一般按照下面公式求解:
θ = arccos ⁡ ( tr ⁡ ( R ) − 1 2 ) \theta=\arccos \left(\frac{\operatorname{tr}(\boldsymbol{R})-1}{2}\right) θ=arccos(2tr(R)1)
对数映射求解完成。

3.总结

在这里插入图片描述

参考资料:
1.《视觉SLAM十四讲》
2.《A micro Lie theory for state estimation in robotics》

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值