@ 《视觉SLAM十四讲》知识点与习题

《视觉SLAM十四讲》第四讲知识点整理+习题

正在学习SLAM相关知识,将一些关键点及时记录下来。

知识点整理

本讲主要解决**什么样的相机位姿最符合当前观测数据**问题。一种典型的方法是把它构建成一个优化问题,求解最优的R,t,使得误差最小化。通过李群-李代数间的转换关系,可以将位姿估计变成无约束的优化问题,简化求解方式

  1. :一种集合加上一种运算的代数结构。满足以下条件“封结幺逆”
  2. 特殊正交群SO(3): 三维空间的旋转矩阵,是一个正交阵,且行列式为1,即旋转矩阵群
  3. 特殊欧氏群SE(3): 包含三维空间旋转矩阵R,平移向量t,0^T 和1的四维空间变换矩阵。即3维欧式变换群
  4. 李群: 具有连续(光滑)性质的群。每个李群都有对应的李代数
  5. 反对称矩阵: A = -A_T。对于一个向量,可以将其变成反对称矩阵;对于任意反对称矩阵,亦可以找到一个与之对应的向量
  6. Φ叫做:在SO(3)原点附近的正切空间。R(t) = exp(Φ^ t),这里Φ是指Φ0. 其中^是指将Φ0向量变成其对应的反对称矩阵的操作。所以,每对旋转矩阵求一次导数,只需要左侧乘以Φ(t0)即可

  7. 李代数: 描述了李群的局部性质。由一个集合,一个数域,一个二元运算组成。具有封闭性,双线性,自反性和雅可比等价。SO(3)对应的李代数是定义在3D空间上的向量。由于李代数和反对称矩阵关系很紧密,在不引起歧义的情况下,就说李代数的元素是三维向量或者三维矩阵。李代数so(3) 是一个三维向量。李代数se(3) 是一个六维向量

  8. 指数映射: 在李群和李代数中,表示一个矩阵的指数。任意矩阵的指数映射可以写成一个Taylor展开,但是只有在收敛的情况下才会有结果,其结果仍是一个矩阵
  9. 特殊正交群的李代数实际上就是所谓的旋转向量组成的向量,其指数映射即罗德里格斯公式。通过它们,可以把so(3)中任意一个向量对应到一个位于SO(3)中的旋转矩阵,反之也可以
    指数映射: 。指数映射表示把so(3)中任意一个向量(即旋转向量)对应到了一个位于SO(3)中的旋转矩阵
    对数映射:。对手映射表示将SO(3)中的元素对应到so(3)中去
    使用李代数的一大动机就是为了进行优化,而在优化过程中导数是非常必要的信息
  10. 两个李代数指数映射乘积的完整形式: 由BCH公式给出。BCH公式线性近似表达:

    以第一个近似为例。当对一个旋转矩阵R2(李代数为Φ2)左乘一个微小旋转矩阵R1(李代数为Φ1)时,可以近似的看做,在原有的李代数Φ2上,加上了一项。对于第二个近似同理。于是,李代数在BCH近似下,分成了左乘近似和右乘近似两种,在使用时需加注意,使用的是做成模型还是右乘模型

    总结为:
  11. 李群和李代数之间的转换关系
  12. 使用李代数解决求导问题的思路: 应用中,通常会构建与位姿有关的函数,然后讨论该函数关于位姿的导数,以调整当前的估计值。此时,就需要用到李代数求导。有两种解决思路
  13. 用李代数表示姿态,然后根据李代数加法来对李代数求导
  14. 对李群左乘或右乘微小扰动,然后对该扰动求导,称为左扰动和右扰动模型
  15. 李代数求导: 旋转后的点相对于李代数的导数。但是仍然含有形式比较复杂的Jl,所以还是很复杂
  16. 扰动模型(左乘):设左扰动△R对应的李代数为φ,对φ求导
    取近似后的结果为

实践Sophus

  1. . Sophus基于Eigen进行开发,可以从旋转矩阵、旋转向量和四元数构造Sopuhs::SO(3)
  2. 使用对数映射可以获得对应的李代数,用Eigen::Vector3d表示
 // 使用对数映射获得它的李代数Eigen::Vector3d so3 = SO3_R.log();cout<<"so3 = "<<so3.transpose()<<endl;// hat 为向量到反对称矩阵cout<<"so3 hat=\n"<<Sophus::SO3::hat(so3)<<endl;// 相对的,vee为反对称矩阵到向量cout<<"so3 hat vee= "<<Sophus::SO3::vee( Sophus::SO3::hat(so3) ).transpose()<<endl; // transpose纯粹是为了输出美观一些
------------------------------------------------------------
// 增量扰动模型的更新。此时为左乘扰动模型Eigen::Vector3d update_so3(1e-4, 0, 0); //假设更新量为这么多Sophus::SO3 SO3_updated = Sophus::SO3::exp(update_so3)*SO3_R

输出为

  1. 查看Sophus源码中使用到的函数
    1. SO(3)的hat函数源码,根据书上的公式直接赋值。这个就比较直观了,**********************************
    2. SO(3)的vee函数源码,直接返回反对称矩阵中对应位置的值即可

    3. SO(3)的exp函数。返回的是一个以四元数为输入的SO3变量。因此,对于四元数,根据公式[3.19],计算二分之一的旋转角度的cos和sin值即可。而旋转角度,根据下述代码,即为传入Omega的模长
    4. SO(3)的log函数。相比较exp函数而言,log函数就复杂了,,,

视觉SLAM十四讲——第四讲李群与李代数相关推荐

  1. 视觉SLAM中的数学基础 第三篇 李群与李代数

    转自:http://www.cnblogs.com/gaoxiang12/p/5137454.html 致敬原作者,请移步原作者博文详细浏览 前言 在SLAM中,除了表达3D旋转与位移之外,我们还要对 ...

  2. 视觉SLAM总结——视觉SLAM十四讲笔记整理

    视觉SLAM总结--视觉SLAM十四讲笔记整理 说明 基础知识点 1. 特征提取.特征匹配 (1)Harris (2)SIFT (3)SUFT (4)ORB (5)特征匹配 2. 2D-2D:对极约束 ...

  3. 浅读《视觉SLAM十四讲:从理论到实践》--操作1--初识SLAM

    浅读<视觉SLAM十四讲:从理论到实践>--操作1--初识SLAM 下载<视觉SLAM十四讲:从理论到实践>源码:https://github.com/gaoxiang12/s ...

  4. 视觉SLAM十四讲(3):三维空间刚体运动

    本章需要掌握的知识点有:旋转矩阵,变换矩阵,四元数,欧拉角定义和数学表达:同时也要掌握Eigen库关于矩阵.几何模块的使用方法. 文章目录 3.1 旋转矩阵 3.1.1 点,向量和矩阵的关系 3.1. ...

  5. 视觉SLAM十四讲(2):初识SLAM

    这一讲主要介绍视觉SLAM的结构,并完成第一个SLAM程序:HelloSLAM. 目录 2.1 小萝卜的例子 单目相机 双目相机 深度相机 2.2 经典视觉SLAM框架 2.3 SLAM问题的数学表述 ...

  6. 视觉SLAM十四讲(1):预备知识

    最近在学习高翔博士的<视觉SLAM十四讲>(第二版),算是初学本书,配套资源还算蛮丰富的,有代码(第一版和第二版都有),B站上也有高翔博士对第一版录制的讲解视频,真的是很贴心. 来吧,让我 ...

  7. 视觉slam十四讲 pdf_视觉SLAM十四讲|第12讲 回环检测

    1. 什么是回环检测 前面有说过累积误差的问题,前一时刻的误差会积累到后面,导致画不成圈圈,如图12-1所示,而画圈圈(全局一致性)很重要,所以需要有一个步骤来纠正当前的计算偏差. 回环检测通过判断相 ...

  8. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-三角测量和实践

     专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第 ...

  9. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-对极几何和对极约束、本质矩阵、基础矩阵

    专栏系列文章如下:  专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLA ...

  10. 视觉SLAM十四讲学习笔记-第六讲学习笔记总结(1)---非线性优化原理

    第六讲学习笔记如下: 视觉SLAM十四讲学习笔记-第六讲-非线性优化的状态估计问题_goldqiu的博客-CSDN博客 ​​​​​​视觉SLAM十四讲学习笔记-第六讲-非线性优化的非线性最小二乘问题_ ...

最新文章

  1. Lumen框架多数据库连接配置方法
  2. Determine whether an integer is a palindrome. Do this without extra space.
  3. java web 默认页面配置文件_Tomcat中配置全局的错误页面(如404)+删除Tomcat中webapps目录下的自带项目,防止Tomcat默认文件泄露...
  4. 【洛谷 2661】信息传递
  5. MIP 2016年终总结
  6. mysql+imx6+移植_imx6ulevk---MfgTool的使用心得
  7. jQuery Mobile中网格grid样式ui-grid-*
  8. 小米笔记本Pro14 黑苹果失败<经验>
  9. qtdesigner设计表格_Qt Designer下的一些基础操作
  10. 没有密码,如何取消Word文档的只读模式?
  11. 当“国风综艺”遇上“数字金融”,看国有大行解锁营销新范式
  12. 线程竞争导致的EOFException解决 ---  一次线上问题解决流程
  13. STM32F103C8核心板原理图
  14. MTK MT6169 2G用户指南参考资料
  15. adb 打开 diag 端口用qpst备份恢复qcn
  16. 【转载】sdcard中平添文件总是提示Failed to push the item(s)Failed to push XXXXX.txt on emulato...
  17. 训练自己的yolov5样本, 并部署到rv1126 <三>
  18. w7修复计算机,如何修复Win7系统?Win7系统修复教程
  19. arduino灯带随音乐_party神器~ProcessingArduino音乐LED
  20. 周易六十四卦——睽卦

热门文章

  1. 使用计算机需要准备硬件和什么,2017年计算机硬件知识参考试题
  2. 【springcloud问题】Could not locate PropertySource and the fail fast property is set, failing
  3. 关于调制比、过调制、基波电压和母线电压的概念和关系总结
  4. php提交按钮快捷键,直接打印快捷键
  5. 学习笔记 | Orillusion-WebGPU小白入门(六)
  6. c#上位机plc通讯读位
  7. C++递归实现栈逆序
  8. 特殊节日网站全体变成黑灰色
  9. (附源码)springboot跨境电商系统 毕业设计 211003
  10. 【工厂扫码打印扫码装箱错误追溯系统】完整案例详解(PythonPyQt 源码Mysql数据库)