SLAM初学-李群与李代数
date
Sep 2, 2021
Last edited time
Sep 5, 2021 10:59 AM
status
Published
slug
SLAM初学-李群与李代数
tags
SLAM
summary
type
Post
Field
Plat
- 三维旋转矩阵构成的特殊正交群
- 变换矩阵构成的特殊欧式群
李群的定义
群
群是一种集合加上一种运算的代数结构, 若把集合记为 , 运算记为 , 则这个群记为 , 并且要求满足以下性质
- 封闭性: 对于所有 中 ,运算 的结果也在 中。
- 结合律: 对于所有 中的 和 ,等式 成立。
- 单位元: 存在 中的一个元素 ,使得对于所有 中的元素 ,总有等式 成立。
- 逆元: 对于每个 中的 ,存在 中的一个元素 使得总有 ,此处 为单位元。
李群
粗略地说,李群是连续的群,也即其元素可由几个实参数描述。
李代数的定义
李代数由一个集合 , 一个数域 , 和一个二元运算符 组成, 若其满足以下几条性质, 则称 为一个李代数
- 封闭性:
- 双线性:
- 自反性
- 雅可比等价
李代数
在 上的向量, 记作 .
在此定义下, 两个向量 的李括号运算定义为:
- 李代数 , 是一个三维向量的集合, 每个三维向量对应一个反对称阵, 表示旋转矩阵的导数
- 旋转矩阵与李代数 的关系
李代数
位于 空间中, 表示平移, 表示旋转
- 李代数 的李括号运算:
李代数求导与扰动模型
- 使用李代数的理由
旋转矩阵有约束条件, 必须是一个正交矩阵, 不好进行优化.使用旋转向量的话, 则无约束条件
李代数中完成矩阵乘法
- 对于矩阵 , 其计算矩阵的指数乘积时, 其 BCH 公式如下:
- 考虑当相机运动时, 机器人运动的更新量 很小, 则其 上的李代数 , 其小量二次以上的项都可以忽略, 此时, BCH 的线性近似为:
其中
- 反之,如果我们在李代数上进行加法,让 加上 ,那么可以近似为李群上带左/右雅可比矩阵的乘法:
- 同样的, 对于 , 也有类似的BCH近似公式
李代数的求导
- 根据定义求导
假设空间点 进行了一次矩阵表示为 的旋转,得到了 。要计算旋转后的点的坐标相对于旋转的导数. 设 所对应的李代数为 , 就可以写成:
那么根据导数的定义
这种方式求得的导数任然含有形式复杂的 , 因此可以使用以下的方式可以求得更简单的形式
- 左乘模型的求导
另一种方法则是对旋转矩阵 进行一次扰动 ,然后在对这个扰动进行求导, 设左扰动的李代数为 , 直接对 进行求导:
- 上的扰动模型
假设某空间点 经过了一次变换 ,对应的李代数为 ,得到了 。给 左乘一个微小扰动 ,扰动项的李代数为 。则有:
Sophus 实践
Sophus 的安装
在Cmakelist.txt中添加