视觉SLAM第三讲学习笔记

  • 框架显示
  • 第三讲主要内容
    • 旋转矩阵
      • 坐标系的欧式变换
      • 变换矩阵和齐次坐标
    • 旋转向量和欧拉角
      • 旋转向量
      • 欧拉角
    • 四元数
      • 定义
      • 运算
      • 四元数表示旋转
      • 四元数到旋转矩阵的转换

框架显示

第三讲主要内容

这一讲内容比较多,比较干货,把笔记做的详细一点,方便之后的回顾

旋转矩阵

其中的概念就略过了,基本都是常识

坐标系的欧式变换

1.简单来讲,我们的相机坐标系就是一个载体坐标系,而我们需要把相机看到的东西转换为世界坐标系,或者地球坐标系,

2.(常用的坐标系有东北天坐标系等,列出最近读的惯性导航中的常见坐标系):

3.一般来讲我们把两组坐标系下的向量之间的转化以下列形式表示出来,左边的a向量表示一个旋转,左右两边的旋转应该是对应的。

将其进行一个数学变换,就可以得到左边的向量a到右边向量a’的关系了,如下图:

其中的R就是旋转矩阵,也就是说:旋转矩阵可以描述相机的旋转
4.简单来讲,我们的载体在坐标系下的运动可以由一个旋转和一个平移来表示,也就是说,将其进行数学抽象之后就是:
5.旋转矩阵是一个反对称矩阵,这一点要注意。

变换矩阵和齐次坐标

1.变换矩阵是旋转矩阵变换后的东西,是为了更好的数学表达,具体原因如下:
当一个坐标经过多次转变之后,我们的关系式:
变得比较复杂和杂乱,因此利用一个数学技巧:我们把一个三维向量的末尾添加1,变成了四维向量,称为齐次
坐标
。对于这个四维向量,我们可以把旋转和平移写在一个矩阵里面,使得整个关系变成
了线性关系。

该式中,矩阵T 称为变换矩阵(Transform Matrix)。我们暂时用~a 表
示a 的齐次坐标。齐次坐标的概念我们知道这些足矣。

旋转向量和欧拉角

这是比较重要的引入概念的部分

旋转向量

1.为什么已经有了旋转矩阵和变换矩阵还要使用旋转变量,这是因为它的缺点是很明显的:
它必须是正交的,(行列式为1),它在三维空间的旋转矩阵都是9个参数,可我们每次的运动只有三个自由度,简单来讲就是最多只有x,y,z三个维度的变化,9个明显就是多余的,我们需要寻求一种更加简洁的表达,因此引入我们的旋转向量
2.一个旋转轴和一个旋转角就可以表示任意旋转,因此我们把方向与旋转轴一致,而长度等于旋转角的这种向量,称为旋转向量,实际上这个旋转向量就是李代数
3.下一章要学习李代数,因此这里我们直接放出一些结论供我们记忆就行了,其他的细节后续会慢慢提及,不影响我们的学习:
4.假设有一个旋转轴为n,角度为θ的旋转,显然,它对应的旋转向量为θn。由旋转向量到旋转矩阵的过程由罗德里格斯公式(Rodrigues’s Formula ):


欧拉角

1.广义欧拉角的定义比较简单,我们直接上图:

X,Y,Z的方向参考下图:

至于更加形象的理解参考这幅图:

因此不必拘泥于死板的X,Y,Z方向,理解其中文意义:更加容易记忆
pitch-俯仰角 roll-翻滚角 yaw-偏航角

四元数

定义

1.目前四元数咱们只需要使用即可,至于它的优缺点也很明显,我们介绍它就是说它避免了旋转矩阵的冗余表示,避免了旋转向量的奇异性(简单理解奇异性:举个例子,经纬度表示地球坐标,但是当经度为±90°时,纬度没有意义,这就是奇异性),表示如下:

一种复数,一个实部,三个虚部,其中的i,j,k的意义如下:

2.另一种表示方法:
其余的定义与正常的复数是相同的,实四元数,虚四元数,即是指实部或者三个虚部全部为0,即为实四元数和虚四元数。
3.三维空间需要三个轴,四元数也有三个虚部,那么,一个虚四元数则对应到一个空间点,这就是介绍四元数的概念的意义,为了我们接下来的旋转的表示。
4.。假设某个旋转是绕单位向量n = [nx; ny; nz]的转置 进行了角度为θ 的旋转,那么这个旋转的四元数形式为:

这个我就不上具体步骤了,你们可以自行推导一下,比较简单,套公式即可。
5.任意的旋转都可以由两个互为相反数的四元数表示。这一点不多做解释,大家先使用即可。

运算

运算别想了就只有加减乘除。
1.加减:实部虚部加减即可,
2.乘:每一项拆开乘,但是虚部要满足这个关系,再贴一次:

3.共轭:
4.点乘,数乘,不提了比较简单:

四元数表示旋转

1.如上面讲的,四元数表示一个空间点即为:

虚四元数表示一个空间点。
2.接下来表示旋转:

3.p经过q这个旋转之后得到p’:

这就是旋转后得到的点。

四元数到旋转矩阵的转换

1.这个直接贴出来:

具体对应的实部和三个虚部为:

2019-0404视觉SLAM的学习第三讲01相关推荐

  1. 2019-0405视觉SLAM的学习第三讲02

    视觉SLAM第三讲学习笔记 框架显示 本讲主要内容 Eigen实践 今天就先到这里,明天继续! 框架显示 本讲主要内容 1.把第三讲的实践部分单独拿出来进行记录. Eigen实践 1.安装Eigen库 ...

  2. 2019-0405视觉SLAM的学习第四讲

    视觉SLAM第四讲学习笔记 框架显示 李群李代数基础 群 李代数的引出 李代数的定义 李代数SO(3) 李代数SE(3) 指数与对数映射 SO(3)上的指数映射 SE(3)上的指数映射 李代数求导与扰 ...

  3. 2019-0403视觉SLAM的学习第二讲

    视觉SLAM第二讲学习笔记 框架显示 第二讲主要内容 经典SLAM框架 整个SLAM流程概述 Linux编程基础 资源获取 框架显示 第二讲主要内容 经典SLAM框架 整个SLAM流程概述 传感器信息 ...

  4. 2019-0331视觉SLAM的学习第一讲

    视觉SLAM第一讲学习笔记 框架显示 第一讲主要内容 资源获取 框架显示 第一讲主要内容 我就不多bb后面三个概述了,今天开始说明一下SLAM的第一讲的内容,接下来13天每天按时按量完成任务,立个FL ...

  5. 视觉SLAM知识库+学习资源+相关企业总结

    视觉SLAM的知识资源以及相关企业总结 先在这儿记录一下,SLAM涉及的太多了,现在接触的只是冰山一角. 声名:我只是微信公众号计算机视觉life的搬运工. 一.SLAM知识库 1.SLAM框架/算法 ...

  6. 深蓝学院-视觉SLAM课程学习课后题

    一. 第一节课习题# 标题 1.熟悉linux (1)可以通过 sudo apt-get install <软件名>的方式安装软件 当自己下载了软件压缩包之后(tar.gz文件),可以解压 ...

  7. 视觉SLAM入门 -- 学习笔记 - Part3

    2 群的性质 先看群的定义: 补充: 3. 解释什么是阿贝尔群.并说明矩阵及乘法构成的群是否为阿贝尔群. 阿贝尔群(Abel Group)又称交换群或可交换群, 它由自身的集合 G 和二元运算 * 构 ...

  8. 视觉SLAM入门 -- 学习笔记 - Part2

    熟悉 Eigen 矩阵运算 设线性方程 Ax = b,在 A 为 n x n ⽅阵的前提下,请回答以下问题: 1. 在什么条件下,x 有解且唯⼀? 当秩R(A,b) = R(A) = n(n为未知数个 ...

  9. 视觉SLAM十四讲学习笔记---前三讲学习笔记总结之SLAM的作用、变换和位姿表示

    经过半年学习SLAM相关知识,对SLAM系统有了一些新的认识,故回看以前的学习记录,做总结和校正. 前三讲学习笔记如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉S ...

最新文章

  1. 计算机管理损坏的图像,损坏的图像(打开软件出现)解决方法
  2. 大学基础课程之重要性
  3. matlab and操作,系统建模 | Control Tutorials for Matlab and Simulink
  4. 作业-python常用库类 numpy+pandas
  5. 网页中怎样制作虚线表格
  6. 【Linux】grep命令
  7. JAVA中方法和变量在继承中的覆盖和隐藏
  8. 展视互动签约新华网 创在线教育新蓝图
  9. 基于JavaEE的办公OA系统的设计与实现
  10. STM32单片机通过ESP8266WiFi模块与Android APP实现数据传输(二)---上位机搭建
  11. IT开发工程师经典面试
  12. 王者荣耀官网制作心得
  13. 劳动合同与聘用合同的区别
  14. KBL410-ASEMI整流桥,KBL410规格书,KBL410机械数据
  15. chrome使用的开源工程
  16. IOS类似图片验证码的实现
  17. 百度地图调用加载显示Marker,并添加点击事件
  18. 业务逻辑层,表示层,会话层及层间关系
  19. 时钟芯片DS1302的驱动程序
  20. “Make It Real 行臻·致远” ——戴尔科技集团与客户及合作伙伴共聚,体验、畅想和实现数字化未来!

热门文章

  1. 从事 Java 20 年最终却败给了 Python,哭了!
  2. “不懂 CPU 工作原理又如何,直接用代码模拟一个!”
  3. ElasticSearch 7 正式发布!
  4. @程序员,物联网软件开发不得不克服的七大挑战
  5. 如何使用 AOP 和自定义注解?
  6. “滚蛋吧”扎克伯格!
  7. 程序员如何在春节假期避免加班?
  8. 那些一心想要离开 BAT 的人,后来怎么样了?
  9. linux如何进入opt目录,Linux 程序安装目录 /opt 目录和 /usr/local 目录
  10. 帮你快速拿Offer!java正则表达式替换指定字符串