【SLAM】5.SLAM十四讲——李群与李代数
一.需求来源
1.1 遇到的问题
位姿估计时存在误差,要使误差最小一般用梯度下降法,
error=f(x),x=[R,t]
其中:
(1)位移t=(x,y,z)在线性空间中,可以加法,可以求导
(2)姿态R属于SO(3),不支持加法,不能直接求导
(3)进而,位姿T属于SE(3),不支持加法,不能直接求导
1.2 解决办法
(1)SO(3)和SE(3)都是群,是李群。
(2)李群和李代数存在一一对应
(3)李代数支持加法,可以求导
(4)对李代数进行求导,再对应回李群
二.数学基础
2.1 群
在组成上,是一种集合+运算
在运算上,具有:
(1)封闭性,a1属于A,a2属于A,则a1*a2属于A
(2)结合性
(3)幺元,存在a0属于A,对于任意的a属于A,都有a0*a属于A,类似单位1的样子
(4)逆,对于任意的a属于A,存在b属于A,使得a*b=幺元,称a和b互逆
2.2 李群
李群是光滑连续的群
有证明证明SO(3)和SE(3)是李群
直观理解:刚体在空间中的运动是连续的
2.3 李代数
组成上,集合V+数域F+二元运算符[,]李括号,称为李代数
运算上,具有:
(1)封闭性,对于任意的x、y数域V,则[x,y]属于V
(2)双线性,对于任意的x、y、z属于V,a、b属于F,[ax+by,z]=a[x,z]+b[y,z]
(3)自反性,对于任意x属于V,[x,x]=0
(4)雅克比共价,略
例如,g=(R3,R,X)满足李代数的性质,R3为三维实向量,R为实数,X为叉乘运算
2.4 李群和李代数的转换关系
李群SO(3)的李代数称so(3),李群SE(3)的李代数称se(3)
推导过程略,只需要记住:从李代数f到李群R是指数映射,从李群R到李代数f是对数映射,so(3)是SO(3)在幺元处的切平面
对于从李群R=func(李代数f)这种指数运算,借用罗德里格斯公式可知李代数f就是李群R对应的旋转向量,即角轴
2.5建立李群乘法和李代数加法之间的关系
在李群R上作乘法约等于李代数f作加法,具体推导见教程,涉及到级数展开的小量和李代数f的雅克比逆
2.6 如何使用李群和李代数求导
SO(3)有两种求导方式:
(1)对李代数f进行求导,中间涉及几个数学概念,求出的结果即为李群目标值newR
(2)小扰动求导,是对增量deltaR进行求导,求出最佳的李群增量deltaR,则目标值newR=deltaR*R
三.工具
3.1 CMake的一些技巧
博客园:[一块灰色的石头]Sophus库CMakeList.txt内容详解笔记
3.2 Sophus库
对Eigen的封装,对SO(3)、SE(3)的运算提供了便捷的支持

浙公网安备 33010602011771号