[学习笔记-SLAM篇]视觉SLAM十四讲ch3
一鼓作气哈。
还学了一点latex编写技巧,技能max。
注:
1)学习视频:【高翔】视觉SLAM十四讲。
视觉SLAM十四讲
- 第3讲
- 3.1 理论部分
- 3.2 实践部分
第3讲
3.1 理论部分
这一部分要点如下。3-5均为欧式变换所涉及的方式,此外,非欧式变换会改变刚体外形,如6中的几种变换。
1)线性代数基础
- 向量内积:a⋅b=aTb=∑i=13aibi=∣a∣∣b∣cos<a,b>\pmb{a}·\pmb{b}=\pmb{a}^T\pmb{b}=\sum_{i=1}^3a_ib_i=|\pmb{a}||\pmb{b}|cos<\pmb{a},\pmb{b}>aaa⋅bbb=aaaTbbb=∑i=13aibi=∣aaa∣∣bbb∣cos<aaa,bbb>;
- 向量外积:a×b=a^b\pmb{a}×\pmb{b}=\pmb{a}\hat{}\ \pmb{b}aaa×bbb=aaa^ bbb,其中a^\pmb{a}\hat{}aaa^指反对称矩阵,有的书中也表示为a×\pmb{a}^×aaa×。
2)刚体运动&坐标系间欧式变换
- 刚体运动:一个旋转加一个平移,用于表示世界系和相机系(或机器人系)之间的关系,用欧式变换来描述;
- 欧式变换:由旋转和平移组成。旋转部分为一个旋转矩阵R\pmb{R}RRR(也叫方向余弦矩阵,3×3维),具有行列式为1和正交的性质,nnn维旋转矩阵的集合定义为SO(n)SO(n)SO(n),由nnn维空间的旋转矩阵组成,SO(n)SO(n)SO(n)指nnn维空间的特殊正交群;平移部分为一个平移向量t\pmb{t}ttt(3×1维)。
3)变换矩阵
- 为便于多次欧式变换的描述,引入齐次坐标将旋转矩阵和平移向量放在一个矩阵中,形成变换矩阵T\pmb{T}TTT(4×4维);
- 变换矩阵可用于描述位姿,nnn维变换矩阵的集合定义为SE(n)SE(n)SE(n),指特殊欧式群,这里虽然变换矩阵为4×4维,但SE(n)SE(n)SE(n)仍表示为SE(3)SE(3)SE(3),应该是由于其描述的仍是3维空间的变换。
4)旋转向量和欧拉角
- 为解决表达冗余问题,将旋转矩阵R\pmb{R}RRR用一个旋转轴和一个旋转角来刻画,即变换为一个旋转向量(角轴或轴角),转换过程采用罗德里格斯公式;将变换矩阵T\pmb{T}TTT表达为一个旋转向量和一个平移向量;
- 欧拉角可用于直观表示,但存在奇异性问题(万向锁),使系统丢失一个自由度(由于俯仰角为±90°,x与z轴同轴)。
5)四元数
- 四元数是一种不带奇异性也不过分冗余的描述方式,可用于描述三维旋转,其与旋转向量之间可进行相互转换;
- 使用时,将空间三维点表示为一个纯虚四元数p\pmb{p}ppp,对其做单位四元数q\pmb{q}qqq指定的旋转,则通过p′=qpq−1\pmb{p}^\prime=\pmb{q}\pmb{p}\pmb{q}^{-1}ppp′=qqqpppqqq−1可得到旋转后的点p′\pmb{p}^\primeppp′。
6)非欧式变换
- 相似变换:允许物体均匀缩放,自由度为7,该缩放因子sss在变换矩阵T\pmb{T}TTT中乘在旋转矩阵R\pmb{R}RRR前,三维相似变换集合称为相似变换群,Sim(3)Sim(3)Sim(3);
- 仿射变换:仅保持各面平行,自由度为12,旋转矩阵R\pmb{R}RRR为可逆矩阵A\pmb{A}AAA即可,不必正交;
- 射影变换:仅保证接触平面的相交和相切,自由度为15。
3.2 实践部分
[学习笔记-SLAM篇]视觉SLAM十四讲ch3相关推荐
- R语言学习笔记——高级篇:第十四章-主成分分析和因子分析
R语言 R语言学习笔记--高级篇:第十四章-主成分分析和因子分析 文章目录 R语言 前言 一.R中的主成分和因子分析 二.主成分分析 2.1.判断主成分的个数 2.2.提取主成分 2.3.主成分旋转 ...
- 视觉SLAM十四讲 ch3 Ubuntu18.04 KDevelop的使用及Eigen实践 入门笔记
视觉SLAM十四讲 ch3 Ubuntu18.04 KDevelop的使用及Eigen实践 入门笔记 一.创建KDevelop项目 二.编写程序 一.创建KDevelop项目 你的电脑上如果还没有安装 ...
- 视觉SALM十四讲学习笔记——第七讲 视觉里程计(1)
视觉里程计这一部分的第一个主要内容是ORB特征点的提取与匹配.这里主要关注两个内容: (1)特征点的匹配方法及代码实现 (2)ORB特征点的BRIEF描述子如何实现旋转不变性及在示例代码中的体现 1. ...
- 视觉SLAM十四讲CH3代码解析及课后习题详解
eigenMatrix.cpp #include <iostream>using namespace std;#include <ctime> // Eigen 核心部分 #i ...
- 视觉SLAM十四讲 ch3 (三维空间刚体运动)笔记
本讲目标 ●理解三维空间的刚体运动描述方式:旋转矩阵.变换矩阵.四元数和欧拉角. ●学握Eigen库的矩阵.几何模块使用方法. 旋转矩阵.变换矩阵 向量外积 向量外积(又称叉积或向量积)是一种重要的向 ...
- 视觉slam十四讲 ch3 visualizeGeometry 与Pangolin报错解决
在安装好Pangolin后, 1.对ch3中visualizeGeometry程序 make 时,出现类似如下错误: 解决:应该是引用的一些东西c++标准为c++14,而对应Cmakelist.txt ...
- ubuntu18.04搭建SLAM环境 转 高翔 十四讲匹配环境
ubuntu18.04搭建SLAM环境_stjuliet的博客-CSDN博客_ubuntu安装slam
- Soul 学习笔记之 soul-plugin-sofa 组件探寻(十四)
目录 总系列目录地址 soul-plugin-sofa结构 类维度 包依赖维度 注册时序图 总结 总系列目录地址 soul-plugin-sofa结构 类维度 ApplicationConfigCac ...
- 视觉SLAM十四讲学习笔记---前三讲学习笔记总结之SLAM的作用、变换和位姿表示
经过半年学习SLAM相关知识,对SLAM系统有了一些新的认识,故回看以前的学习记录,做总结和校正. 前三讲学习笔记如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉S ...
- 视觉SLAM十四讲学习笔记-第六讲学习笔记总结(1)---非线性优化原理
第六讲学习笔记如下: 视觉SLAM十四讲学习笔记-第六讲-非线性优化的状态估计问题_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第六讲-非线性优化的非线性最小二乘问题_ ...
最新文章
- Xcode终端常用的指令-终端输入
- 安装pipenv搭建虚拟环境做flask
- Clickhouse Engine kafka 将kafka数据同步clickhouse
- mariadb集群初次启动方法
- Linux 命令行中的文件名/文件路径中使用通配符的说明
- 4位大佬解读:“医疗人工智能、信息化、政策与科研”的新风向与新趋势
- 【Python】学习笔记2-数据类型:数组、数组循环切片
- Unicode -- 从code point到UTF16的计算方法
- JavaFX的webview下载文件的一种实现思路
- 儿研所 计算机训练,金博智慧:注意缺陷、多动障碍儿童计算机认知训练(工作记忆训练)研究...
- 华为android打开usb调试模式,华为 PE-CL00 开启USB调试模式
- 关于微信异常烦人自动生成的聊天记录截图视频
- 利用eNSP进行VPLS仿真实验
- Android USB Tethering的实现以及代码流程
- ROS2极简总结-文件系统
- Buffon投针问题
- 白杨SEO:SEO转型难吗?SEO如何转型ASO(应用商店搜索优化)?
- C#调用DLL的几种方法
- Star CCM+多孔介质仿真(二)——阻力系数的计算和设置
- Word排版步骤的小思考