在 SLAM 中,除了表示之外,我们还要对它们进行估计和优化。因为在 SLAM 中位姿是未知的,而我们需要解决什么样的相机位姿最符合当前观测数据这样的问题。一种典型的方式是把它构建成一个优化问题,求解最优的 R,t,使得误差最小化。如前所言,旋转矩阵自身是带有约束的(正交且行列式为 1)。它们作为优化变量时,会引入额外的约束,使优化变得困难。通过李群——李代数间的转换关系,我们希望把位姿估计变成无约束的优化问题,简化求解方式。

我们说三维旋转矩阵构成了特殊正交群 SO(3),而变换矩阵构成了特殊欧氏群 SE(3):

旋转矩阵也好,变换矩阵也好,它们对加法是不封闭的。换句话说,对于任意两个旋转矩阵 R1 ,R2 ,它们按照矩阵加法的定义,和不再是一个旋转矩阵。对于变换矩阵亦是如此。我们发现,这两种矩阵并没有良好定义的加法,相对的,它们只有一种较好的运算:乘法。SO(3) 和 SE(3) 关于乘法是封闭的:

乘法对应着旋转或变换的复合——两个旋转矩阵相乘表示做了两次旋转。对于这种只有一个运算的集合,我们把它叫做群。

群(Group)是一种集合加上一种运算的代数结构。我们把集合记作 A,运算记作 ·,那么群可以记作 G = (A,·)。群要求这个运算满足以下几个条件:

可以验证,旋转矩阵集合和矩阵乘法构成群,同样变换矩阵和矩阵乘法也构成群(因此才能称它们为旋转矩阵群和变换矩阵群)。其他常见的群包括整数的加法 (Z,+),去掉 0 后的有理数的乘法(幺元为 1)(Q\0,·) 等等。矩阵中常见的群有:

一般线性群 GL(n) 指 n × n 的可逆矩阵,它们对矩阵乘法成群。
特殊正交群 SO(n) 也就是所谓的旋转矩阵群,其中 SO(2) 和 SO(3) 最为常见。
特殊欧氏群 SE(n) 也就是前面提到的 n 维欧氏变换,如 SE(2) 和 SE(3)。

李群是指具有连续(光滑)性质的群。像整数群 Z 那样离散的群没有连续性质,所以不是李群。而 SO(n) 和 SE(n),它们在实数空间上是连续的。我们能够直观地想象一个刚体能够连续地在空间中运动,所以它们都是李群。由于 SO(3) 和 SE(3) 对于相机姿态估计尤其重要,我们主要讨论这两个李群。

首先引出 SO(3) 上面的李代数 so(3)。

李代数

考虑任意旋转矩阵 R,我们知道它满足:

现在,我们说,R 是某个相机的旋转,它会随时间连续地变化,即为时间的函数:R(t)。由于它仍是旋转矩阵,有

在等式两边对时间求导,得到:

整理得:

可以看出是一个反对称矩阵。对于任意反对称矩阵,我们能找到一个与之对应的向量。把这个运算用符号∨表示

由于是一个反对称矩阵,我们可以找到一个三维向量与之对应。 

等式两边右乘 R(t),由于 R 为正交阵,有:

可以看到,每对旋转矩阵求一次导数,只需左乘一个 ϕ∧(t) 矩阵即可。为方便讨论,我们设 t0 = 0,并设此时旋转矩阵为 R(0) = I。按照导数定义,可以把 R(t) 在 0 附近进行一阶泰勒展开:

我们看到 ϕ 反映了 R 的导数性质,故称它在 SO(3) 原点附近的正切空间 (Tangent Space) 上。同时在 t0 附近,设 ϕ 保持为常数

上式是一个关于 R 的微分方程,而且我们知道初始值 R(0) = I,解之,得:

可以验证上式对微分方程和初始值均成立。不过,由于做了一定的假设,所以它只在 t = 0 附近有效。我们看到,旋转矩阵 R 与另一个反对称矩阵 ϕ 0 通过指数关系发生了联系。也就是说,当我们知道某个时刻的 R 时,存在一个向量 ϕ,它们满足这个矩阵指数关系。

通俗易懂!视觉slam第八部分——李群,李代数相关推荐

  1. 视觉SLAM笔记(17) 李代数求导与扰动模型

    视觉SLAM笔记(17) 李代数求导与扰动模型 1. BCH 公式与近似形式 2. SO(3) 李代数上的求导 3. 李代数求导 4. 扰动模型 5. SE(3) 上的李代数求导 1. BCH 公式与 ...

  2. 那些珍贵的「视觉SLAM」课程资料总结(补充版/完整版)

    文章目录 一 前言 二 干货 原文链接: 那些珍贵的「视觉SLAM」课程资料总结(补充版/完整版) 在公众号「3D视觉工坊」后台,回复「SLAM」,获得以下资源的完整下载链接. 一 前言 之前曾经总结 ...

  3. 视觉SLAM笔记(65) 简约总结

    视觉SLAM笔记(65) 简约总结 参考: <视觉SLAM十四讲> 视觉SLAM笔记(3) 视觉SLAM框架 视觉SLAM笔记(20) 单目相机模型 视觉SLAM笔记(32) 2D-2D: ...

  4. 视觉SLAM十四讲学习笔记-第四讲---第五讲学习笔记总结---李群和李代数、相机

    第四讲---第五讲学习笔记如下: 视觉SLAM十四讲学习笔记-第四讲-李群与李代数基础和定义.指数和对数映射_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第四讲-李代数求导与扰动模 ...

  5. 视觉SLAM笔记(15) 李群与李代数

    视觉SLAM笔记(15) 李群与李代数 1. 前言 2. 基础 3. 群 4. 李代数的引出 5. 李代数的定义 6. 李代数so(3) 7. 李代数se(3) 1. 前言 之前介绍了三维世界中刚体运 ...

  6. 视觉SLAM十四讲笔记-第四讲 李群与李代数

    目录 前提摘要: 一.群 1.1注意对象不同 1.2 概念 二.李群与李代数 2.1 李群 (Lie Group) 2.2 李代数 三.指数映射和对数映射 3.1 李代数so(3)指数映射 3.2 s ...

  7. 视觉SLAM十四讲——第四讲李群与李代数

    @ <视觉SLAM十四讲>知识点与习题 <视觉SLAM十四讲>第四讲知识点整理+习题 正在学习SLAM相关知识,将一些关键点及时记录下来. 知识点整理 本讲主要解决**什么样的 ...

  8. 视觉slam十四讲 学习笔记-3(李群和李代数)

    第一次听没有怎么懂这一章节,后来又重新学习了一遍才弄懂了一点.我发现pdf教材一行一行抠细节全部看一遍还是能够理解的,很多推导和逻辑都比视频清晰很多. 目录 李群和李代数: 李群 : 李代数引出: 李 ...

  9. 视觉SLAM —— 李群与李代数

    一.群 1.1 群的定义 群(Group)是一种集合加上一种运算的代数结构.把集合记作A,运算记作 · ,那么群可以记作G = (A,· ),群要求这个运算满足如下条件(封结幺逆--凤姐咬你): 封闭 ...

最新文章

  1. 为Linux上的Tomcat安装apr支持
  2. Smark.Data 值转换器
  3. 网络欺骗工具Ettercap大学霸IT达人
  4. android 底部通知,Android Fragment实现底部通知栏
  5. Java-进阶:Java-File--IO—1
  6. Linux启动SAP服务,sap启动相关
  7. NEL发布NEO Key-Value数据库LightDB
  8. Spring-core-Environment/profiles
  9. 笔记4:Tensorflow2.0实现VGG13
  10. 什么是阿里云服务器系统盘和数据盘?
  11. 【equals与==比较】String的两种拼接
  12. 利用logrotate系统工具切割tomcat日志
  13. visual studio code 如何取消提示
  14. 获取图片url的后缀
  15. 2019年java经典面试题(附答案)
  16. ANC主动降噪耳机有哪些?ANC主动降噪耳机推荐!
  17. 使用 jxls2.X 导出excel文件
  18. 订阅号如何获取用户基本信息?
  19. Dubbo的使用和原理
  20. 利用群晖nas备份华为手机数据

热门文章

  1. SAP License:中国集团管控存在的主要问题
  2. 计量风险系列—两大定价产品怎么计算风险损失
  3. Java基于Redis的分布式锁
  4. 网络编程 之osi七层协议
  5. [Xcode 实际操作]九、实用进阶-(23)多个Storyboard故事板中的页面跳转
  6. root用户安装的软件在普通用户不生效
  7. java 如何判断操作系统是Linux还是Windows
  8. 线段树之单点更新,区域求和
  9. 二进制文件和ASCII文件有何差别
  10. DataGridView下拉框动态赋值以及事件处理