为什么我们在SLAM中需要李群、李代数

本文作者最初认为SLAM并不需要李群、李代数,但在学习过程中逐渐认识到它们在姿态估计和最小二乘问题优化中的重要性。文章介绍了从旋转矩阵到李代数的转换,通过旋转向量和指数映射解决旋转矩阵的优化问题,展示了李群、李代数在避开创约优化问题中的作用。
摘要由CSDN通过智能技术生成

The Beginning of The Beginning

本文结论先收回了,看到第十章位姿图优化,发现好像还是需要李代数性质的,只能说是naive了。

写在最开始

写完后发现屁话太多了,也没好好整理逻辑。请认真的朋友直接从第4节:没有××××的世界,开始阅读。有闲心的也欢迎从头读起。

SLAM中不需要李群、李代数,我说的。

作为一个数学专业却很惭愧没有学过李群的人,最近对《SLAM十四讲》进行了一些学习。截至动笔写该文位置,博主本人仍未好好研究过李群。所以,如果下文的观点、论证如果出现了错误,也请懂行的各位直接指出,对于错误的地方,博主一定会火速修改。

回到本节题目,显而易见,我的观点就是SLAM不需要李群、李代数!至少,在高翔大大的书里前8章的内容并不需要他们(为什么?因为毕竟我才堪堪看完这么多hhh)。以我对全书脉络的把握,书中剩下的部分应该也不会出现对李群或李代数的需求了。如果现实不幸打脸,那我将把本节标题改为:《SLAM十四讲》前八章不需要李群、李代数。顺便在后面加上SLAM再次需要他们的理由。

李群、李代数初现

废话不多说,先和大家一起回顾一下《SLAM十四讲》的内容。打开书,作者给我们深入浅出地介绍了SLAM的框架,然后我们学会了刚体运动。所谓刚体运动,就是刚体在空间中旋转、平移。旋转可以用旋转矩阵表示,于是我们知道了 SO(n) \text{SO(n)} SO(n)。然后,旋转还可以由一个旋转向量表示,因为两者描述的是同一个旋转,那他们有什么联系呢?作者给我们介绍了罗德里格斯公式:
R = cos ⁡ ( θ I ) + ( 1 − cos ⁡ θ ) n n T + sin ⁡ θ n ∧ . R = \cos(\theta I) + (1-\cos\theta)\mathbf{n} \mathbf{n}^T+\sin \theta \mathbf{n} ^\wedge. R=cos(θI)+(1cosθ)nnT+sinθn.
其中 θ \theta θ为旋转向量的模长,同时也是实际旋转的角度, n n n是旋转向量的旋转轴对应的单位向量。由于旋转对 θ \theta θ是个周期函数,所以上面的变换只是个满射。反过来,我们也有:
θ = arccos ⁡ tr ( R ) − 1 2 . \theta = \arccos \frac{\text{tr}(R)-1}{2}. θ=arccos2tr(R)1.

值得一提的,平移可以用向量唯一表示,然后把平移和旋转融合,我们就有了变换矩阵的概念,变换矩阵融合了平移和旋转的信息,也具有特殊的结构,形成了特殊欧式群:
SE(3) = { T = [ R t ; 0 T 1 ] ∈ R 4 × 4 ∣ R ∈ SO(3) , t ∈ R 3 } . \text{SE(3)} = \left \{ T=\left[R \quad \mathbf{t}; \mathbf{0}^T \quad 1\right] \in \mathbb{R}^{4\times 4} | R \in \text{SO(3)}, \mathbf{t}\in \mathbb{R}^3\right\}. SE(3)={ T=[Rt;0T1]R4×4RSO(3),tR3}.
再往下,我们学到了欧拉角、四元数,他们也都能表示旋转,但是今天的内容用不上他俩,所以暂且不提。

接着,我们来到了艰难的第四章。首先是群,给定集合和运算,集合元素如果满足’封结幺逆’,那就是群,easy!群如果还连续,那就是李群,easy+1。然后 SO(3),SE(3) \text{SO(3),SE(3)} SO(3),SE(3)都是李群,也是我们主要研究的目标。

--------下面一段很关键-----------------------------------------------------------------------------------
然后作者从旋转矩阵出发,用其导数引出了李代数 s o ( 3 ) \mathfrak{so}(3) so(3)。李群 SO(3) \text{SO(3)} SO(3)的单位元的切空间的元素就是其对应的李代数,导数是旋转向量 ϕ \mathbf{\phi} ϕ对应的反对称矩阵 ϕ ∧ \phi^{\wedge} ϕ。李代数描述了李群的局部性质。有对应关系 R ( t ) = exp ⁡ ( ϕ 0 t ) R(t)=\exp(\phi_0t) R(t)=exp(ϕ0t)成立。。。。。。
--------书中上面一段其实我没咋看懂------------------------------------------------------------------

到目前为止,我们就已经接触过李代数 s o ( 3 ) \mathfrak{so}(3) so(3)了。李代数也和群一样,要满足一系列性质:给定一个算子(李括号),集合里的元素关于算子满足balabala,那集合加算子再加上数域就构成李代数了。

既然李群、李代数都已经出现过了,那么接下来,欢迎来到没有李群李代数的世界。

没有李群、李代数的世界

我们先跳到后面的章节,理解为什么说需要李群李代数。

最小二乘问题

SLAM的姿态估计方法中涉及一类最小二乘问题:
arg ⁡ min ⁡ R ∥ f ( R ) ∥ 2 2 . \arg \min_{R} \|f(R)\|_2^2. argRminf(R)22.
其中 R R R为旋转矩阵,当然,一般情况下实际上是在优化姿态,即变换矩阵 T T T

优化方法

为了求解上面的极小问题,我们需要合适的优化算法。

高斯牛顿法

如果 f ( x ) f(\mathbf{x}) f(x)可导,那么我们对其一阶泰勒展开。
f ( x + △ x ) ≈ f ( x ) + J ( x ) T △ x . f(\mathbf{x}+\triangle \mathbf{x}) \approx f(\mathbf{x})+J(\mathbf{x})^T\triangle \mathbf{x}. f(x+x)f(x)+J(x)Tx.

实际上,我们并不需要‘ f ( x ) f(\mathbf{x}) f(x)存在导数 J ( x ) J(\mathbf{x}) J(x)’及类似的表述。本质上,只需要存在 J

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值