主要内容:旋转矩阵、变换矩阵、四元数、欧拉角

3.1 旋转矩阵

3.1.1 点、向量和坐标系

  • 刚体:三维空间中的物体,需要用三维坐标(xyz)和位姿(物体朝向)来描述
  • 左/右手坐标系:将大拇指、食指、中指两两垂直,定义大拇指代表x轴,食指代表y轴,中指代表z轴;那么左手xyz三个方向合起来表示的即是左手坐标系,右手xyz三个方向合起来表示的即是右手坐标系;区别是,左手坐标系和右手坐标系对应的xyz轴,三轴不能同时重合

3.1.2 坐标系间的欧氏变换

  • 世界坐标系/惯性坐标系:固定不动
  • 移动坐标系:从世界坐标系看移动坐标系,会发现移动坐标系在世界坐标系中,原点会变化;而移动坐标系自己看自己,原点是不变的
  • 刚体运动:两个坐标系之间的运动,由旋转加上平移组成
  • 欧式变换:在世界坐标系下一个物体从一个点移动到另一个点的过程,由旋转和平移组成
  • 旋转矩阵:旋转前后坐标系的两组基的內积构成的矩阵,描述了旋转本身;旋转矩阵是一个行列式为1正交矩阵(充要)
  • 平移矩阵:向量加减

3.1.3 变换矩阵与齐次坐标

变换并不是线性的,为了方便表示多次变换的结果,引入了矩阵的表示方法,即齐次坐标和变换矩阵,引入齐次坐标后,写成矩阵形式,变换即为线性了

  • 齐次坐标:在某个向量坐标末尾增加一个数值为1的维度,使其变成四维向量,该向量则被称为齐次坐标
  • 变换矩阵:包含旋转和平移,使变换关系为线性的矩阵。变换矩阵是一个分块矩阵,其左上角为旋转矩阵,右上角为平移向量,左下角为0向量,右下角为1;自由度为6(前,右,上,旋转,俯仰,偏航)

3.2 旋转向量和欧拉角

由于旋转矩阵用了4*4共16个数值来表达6个自由度之间的变换存在数据的冗余、旋转矩阵自身带有的行列式为1和正交的约束使得求解过程可能存在困难——从而引出了旋转向量和欧拉角

3.2.1 旋转向量

任意旋转都可以用一个旋转角和一个旋转轴来刻画,而旋转向量正好包含了这两个特性。

  • 旋转向量:向量方向与旋转轴一致,向量长度等于旋转角,是一个三维向量,用于描述旋转
    假定存在一个单位向量n,此时向量具有一个方向,为旋转轴的方向;假定旋转角为θ,那么θn即可描述一次旋转

  • 变换矩阵的旋转向量表示:使用一个旋转向量和一个平移向量即可表示变换矩阵,表达一次旋转

  • 旋转矩阵R和旋转向量θn之间的相互计算:
    n -> R:
    R -> θ:

    旋转轴n与R之间的关系:由于旋转轴上的向量经过旋转后不发生改变,则有Rn = n,因此转轴n是矩阵R特征值1对应的特征向量

3.2.2 欧拉角

由于旋转矩阵和旋转向量的表述比较不直观,为了直观地表述旋转究竟是怎么回事,欧拉角的概念被引入
大部分领域使用欧拉角时的定义(旋转顺序,旋转方式)不一定相同

  • 欧拉角:有三个分离的转角,将一次旋转分解成三次三个不同方向旋转的总和
    存在多种分解方式:旋转轴旋转的先后顺序(xyz, zyx, yzx等),绕固定轴旋转还是绕最新旋转的轴旋转等
  • 偏航(yaw)、俯仰(pitch)、翻滚(roll)
    偏航:绕物体Z轴旋转得到
    俯仰:绕物体Y轴旋转得到
    翻滚:绕物体X轴旋转得到
  • rpy角:一个脍炙人口的特定旋转流程的欧拉角描述,rpy角旋转顺序是zyx

欧拉角的使用过程中会碰到一个万向锁问题。具体自行查阅。

3.3 四元数

旋转矩阵用9个数值描述3个自由度的旋转存在一定的冗余,而欧拉角和旋转向量虽然紧凑但存在奇异性。

「SLAM」三维空间刚体运动名词笔记相关推荐

  1. SLAM概念三维空间刚体运动讲解

    一.SLAM是什么?为什么要学习?   目前,GPS定位和标签定位应用比较广泛,但是这两者都有自己的缺点,GPS是一个涵盖很广的卫星信号,面对一些低信号地区,GPS会面对失灵的表现,比如室内.山区等: ...

  2. 三维空间刚体运动5:详解SLAM中显示机器人运动轨迹及相机位姿(原理流程)

    三维空间刚体运动5:详解SLAM中显示机器人运动轨迹及相机位姿(原理流程) 一.显示运动轨迹原理讲解 二.前期准备 三.git管理子模块及克隆源代码 1.学习使用Git Submodule 2.克隆源 ...

  3. 高博SLAM十四讲书本程序学习——第3讲 三维空间刚体运动

    小白高博SLAM十四讲书本程序学习_1 第3讲 三维空间刚体运动 在高博原始注释上,针对我自己不明白的部分,做额外注释 如果有错误的地方,请大家指点指点 博文目录 一.P.48 eigenMatrix ...

  4. 视觉SLAM十四讲 第3讲 三维空间刚体运动(相关知识点汇总)

    视觉SLAM十四讲 第3讲 三维空间刚体运动 1. 刚体 2. 欧氏空间(euclidean space) 2.1 欧氏距离: 2.2 欧氏变换: 3. 笛卡尔坐标系 4. 透视空间 5. 齐次坐标系 ...

  5. SLAM系列——第三讲 三维空间刚体运动[2023.1]

    系列文章目录 SLAM系列--第一讲 预备知识[2023.1] SLAM系列--第二讲 初识SLAM[2023.1] SLAM系列--第三讲 三维空间刚体运动[2023.1] SLAM系列--第四讲 ...

  6. 视觉SLAM十四讲:第3讲 三维空间刚体运动

    第3讲:三维空间刚体运动 三维空间中刚体运动的描述方式:旋转矩阵.变换矩阵.四元数和欧拉角 3.1 旋转矩阵 3.1.1 点和向量,坐标系 三维空间中,给定线性空间基(e1,e2,e3)(\mathb ...

  7. 三维空间刚体运动4-3:四元数线性插值方法:Squad

    三维空间刚体运动4-3:四元数线性插值方法:Squad Squad的引出 B e ˊ z i e r c u r v e B\acute{e}zier \space curveB e ˊ zier c ...

  8. 三维空间刚体运动4-1:四元数表示旋转(各形式相互转换加代码)

    三维空间刚体运动4-1:四元数表示变换(各形式相互转换加代码) 1. 四元数的定义 1.1 为什么使用四元数 1.2 复数与四元数 1.3 四元数的形式 2. 四元数的运算 2.1 基础运算 2.2 ...

  9. 三维空间刚体运动4-5:四元数多点离散数值解插值方法:Sping

    三维空间刚体运动4-5:四元数多点离散数值解插值方法:Sping 1. 正切曲率κ(γ,t)\kappa(\gamma, t)κ(γ,t)在H1H_{1}H1​上的离散数值解--Sping 1.1 离 ...

最新文章

  1. eclipse/myeclipse 中,如何删除已经下载过的插件(举例:删除scala ide)
  2. python之路day05--字典的增删改查,嵌套
  3. php的pathinfo,php中PathInfo的用法举例(图文)
  4. fzu 1894 单调队列
  5. git 查看代码量_学会这三个命令,你就不再是git只会用三板斧的菜鸟了
  6. 【操作系统/OS笔记17】文件系统基本概念、文件描述符、文件系统访问、文件别名、文件系统种类
  7. C++编程 Unicode转换成中文
  8. 有关彩票的python编程教程入门_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...
  9. 软件工程——(4)软件设计 思维导图
  10. 钟晱晱,首富不是终点
  11. 基于Python爬取Bing图片
  12. android按钮被遮住,解决Android 虚拟按键遮住了页面内容的问题
  13. 弱口令扫描、暴力破解密码
  14. AP作为WLAN用户接入认证点的PEAP用户接入流程
  15. apex英雄机器人探路者怎么玩_Apex英雄探路者玩法技巧攻略
  16. 高中英语话题阅读 计算机,高中英语必修二Unit 3 Computers阅读课的教学设计
  17. [web效果实现-3] 拼音排序通讯录实现
  18. JS中判断NaN的方法
  19. Ubuntu16.04安装搜狗中文输入法1(安装完成后将英文输入法列为常用输入法,中文列为第二输入法)
  20. 程序员就该加班?5点半下班的程序员什么感觉

热门文章

  1. 归并排序验证性实验_攻略 | 10 大经典排序算法(Python 版)
  2. java程序二叉树_Java实现简单二叉树
  3. 简易航空订票系统_关于航空机票的小常识,看完长知识!
  4. 14英寸电脑长宽多少_首款5G折叠屏电脑发布:看完价格,我酸了
  5. Python必备收藏!Pycharm 常用快捷键方式!让鼠标离手操作
  6. python爬虫中的ip代理设置
  7. spring boot基础教程之文件上传下载
  8. nsga2多目标优化之核心知识点(快速非支配排序、拥挤距离、精英选择策略)详解(python实现)
  9. wxWidgets:C++ 异常
  10. boost::intrusive::rbtree_algorithms用法的测试程序