视觉SLAM14精讲——李群与李代数2.1

视觉SLAM14精讲

  1. 三维空间刚体运动1.0
  2. 三维空间刚体运动1.1
  3. 三维空间刚体运动1.2
  4. 李群与李代数2.1
  5. 相机与图像3.1

视觉SLAM14精讲——李群与李代数2.1

简介

本章介绍前一章提到的旋转、平移、变换等对象的一般数学规律,即李群与李代数。这样做的目的之一是将旋转扩展到最小二乘法当中,并在位姿优化求解的过程中保持旋转的数学性质。这样就能在噪声纷繁复杂的传感器世界中求解当下最优位姿的解。
本章所涉及到的数学基础,源于离散数学。该门课程据个人所知只有计算机和数学专业开设。但是具体涉及不深,只需要了解群论的基本概念即可。所以本章可以说是全书中最为抽象难懂的部分。对本章的内容不要求完全熟练记忆,因为本章仅为后文提供一些理论基础,做了解即可。

群和李群

作者所提到的谐音“丰俭由你”,个人感觉不是很好记忆。推荐口诀“封结妖逆”,首先是因为其中三个字没有变,其次是比较中二,比较好记忆。

如果某个集合与运算满足“封结妖逆”的性质,就是一个群。如果这个群连续/光滑,则该群是李群。本章提到的特殊正交群SO(3)是李群中的一种。

特殊正交群

S O ( 3 ) = { R ∈ R 3 × 3 ∣ RR t = I , d e t ( R = 1 ) } \begin{equation} SO(3) = \left\{ \textbf{R} \in \mathbb{R}^{3 \times 3} | \textbf{RR}^t=\textbf{I}, det(\textbf{R}=1) \right\} \end{equation} SO(3)={RR3×3RRt=I,det(R=1)}
我们来看这个定义。首先,R是一种3x3实数矩阵, 它满足1、正交, 2、行列式等于1,对乘法封闭,对加法不封闭。只要有矩阵满足上述规则,那么该矩阵就是一个旋转矩阵,且属于特殊正交群。这些性质用于位姿求解过程中,隐式的约束条件。例如在使用Ceres求解位姿时,不需要显式列出上述条件进行验证或约束。

R = np.array([[  0.5866089, -0.4492353,  0.6738529],
			[0.4492353,  0.8728027,  0.1907959],
			[-0.6738529,  0.1907959,  0.7138062]])
print(R.dot(R))
np.linalg.det(R)

在这里插入图片描述
在这里插入图片描述
这里要看仔细,浮点数不会刚好输出整数结果,只要相对目标数误差极小即可。

特殊正交群对乘法封闭,加法不封闭的性质意味着,如果将两个矩阵相加,则结果不能保证仍然是一个特殊正交群的元素。这样会引出一个非常严重的问题,特殊正交群无法求导。根据求导的定义:

f ′ ( x 0 ) = lim ⁡ δ x → 0 f ( x + Δ x ) − f ( x ) Δ x \begin{equation} f'(x_0) = \lim_{\delta x \rightarrow 0}{\frac{f(x+\Delta x)-f(x)}{\Delta x}} \end{equation} f(x0)=δx0limΔxf(x+Δx)f(x)
首先特殊正交群就不能满足减法运算法则,甚至连函数连续都不能保证。然而在最小二乘法中,需要求解反向梯度来不断的更新算法,来逼近我们要求的最小误差阈值来实现位姿求解。这样一来就无法利用特殊正交群进行运算。

李代数

如果想让加法变成乘法运算,直观的方式就是将变量指数/对数化,考过研的同学都知道哈哈。书中求得的 ϕ \phi ϕ就是一个对SO(3)进行指数/对数映射的因子,因此我们将 ϕ \phi ϕ叫做旋转矩阵R对应的李代数。 ϕ \phi ϕ反映了旋转矩阵局部的导数关系,反映为当旋转矩阵左乘 ϕ ∧ ( t ) \phi ^{\wedge}(t) ϕ(t)后等价于进行了一次求导,自变量一般为时间t。这里补充一下书中公式(4.9)的一个证明过程:
R ′ = ϕ 0 ∧ R d R d t = ϕ 0 ∧ R ∫ 1 R d R = ∫ ϕ 0 ∧ d t l n R + C 1 = ϕ 0 ∧ t + C 2 l e t   C = C 1 + C 2 R = e ϕ 0 ∧ t + C w h e n   R ( 0 ) = I R = e ϕ 0 ∧ t \begin{align} R' &= \phi_0^{\wedge} R \\ \frac{dR}{dt} &= \phi_0^{\wedge} R \\ \int \frac{1}{R} dR & = \int \phi_0^{\wedge} dt \\ lnR +C_1 &= \phi_0^{\wedge} t + C_2 \\ let\ C &= C_1 + C_2 \\ R &= e^{\phi_0^{\wedge} t +C} \\ when\ R(0) &= I \\ R &= e^{\phi_0^{\wedge} t} \end{align} RdtdRR1dRlnR+C1let CRwhen R(0)R=ϕ0R=ϕ0R=ϕ0dt=ϕ0t+C2=C1+C2=eϕ0t+C=I=eϕ0t

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值