【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)的运算提供了便捷的支持

 

posted @ 2023-03-22 15:36  啊原来是这样呀  阅读(170)  评论(0)    收藏  举报