视觉SLAM
不服输的小白
这个作者很懒,什么都没留下…
展开
-
视觉SLAM_1_初识SLAM
前言:博客中会有大部分的内容和高翔博士的《视觉SLAM十四讲》相同,实际上就是从那上面摘抄的。正在学习《视觉SLAM十四讲》,博客内容作为学习笔记,请勿转载。1、SLAM是干嘛的?从高翔博士的小萝卜的例子,可以很来的体会SLAM到底是干嘛用的。下面来做一个简单的介绍。假设我们组装了一台叫做“小萝卜”的机器人,大概的样子如下图所示:既然是机器人,我们当然希望它有自主运动能力。...原创 2018-09-02 21:11:07 · 629 阅读 · 0 评论 -
三维空间刚体运动的描述总结
三维空间刚体运动的描述方式有很多种,大概是:旋转矩阵、平移向量--->欧式变换矩阵--->旋转向量--->欧拉角--->四元数下面对它们简单的做一个整理,顺一下思路。欧式变换中,坐标系的变换有:旋转、平移两种情况(只有旋转、只有平移、两者都有)1、旋转矩阵、平移向量假设此时,相机坐标系相对于世界坐标系的旋转矩阵为R、平移向量为t,则这里要注意的就...原创 2019-03-18 20:31:25 · 3325 阅读 · 1 评论 -
矩阵的奇异值分解
矩阵的奇异值分解即singular value decomposition(SVD分解),今天在准备期末考试的时候解决了学习SLAM过程中的一个疑问,不过快考试了也没有时间整理,这里先把SVD的相关笔记记录一下,免得搞丢了。等过几天考完试了,会把它和SLAM中对应的知识整理到一起去。...原创 2019-01-05 19:36:24 · 313 阅读 · 0 评论 -
第7讲3 三角测量
之所以把SLAM初始化和三角测量放在一起是因为它们之间有一定的关系,理解了三角测量之后才能理解初始化。三角测量 在得到了相机的运动之后,下一步我们需要用相机的运动来估计特征点的空间位置,但是在单目SLAM中,仅通过单张图像是无法获得像素的深度信息的,我们需要用三角测量(三角化)的方法来估计地图点的深度。先来看一些什么是三角测量?三角测量是指通过在两处观察同一个点的夹角,来确...原创 2018-10-30 15:00:34 · 13991 阅读 · 8 评论 -
第7讲2 --- 求解相机的运动
上一篇博客中学习了特征提取和匹配的概念,并且调用OpenCV库实现了ORB特征的提取和匹配。找到了匹配点后,我们希望能够根据匹配的 点对 来估计相机的运动。一共有三种方法可以用来估计相机的运动,分别为对极几何约束、PnP、ICP。这三种方法分别可以用来处理不同情况下的相机的位姿估计。当相机为单目的时候,我们只知道2D的像素坐标,因而问题是根据两组2D点估计运动。该问题用对极几何来解决。...原创 2018-10-25 15:17:12 · 3328 阅读 · 3 评论 -
第4讲 李群和李代数2
第一部分:SO(3)和so(3)1、SO(3)对应的李代数 SO(3)对应的李代数是定义在上向量,我们记作。根据上一篇博客中的推导,可以知道,每个都可以生成一个反对称矩阵:在此定义下,两个向量的李括号(运算)为:由于和反对称矩阵关系很紧密,在不引起歧义的情况下,可以说的元素是三维向量或者三维反对称矩阵,即:到此,我们已经清楚了SO(3)对应的李代数的内容,...原创 2018-10-18 15:41:57 · 1056 阅读 · 0 评论 -
第8讲 视觉里程计2 --- 光流
特征点法的缺陷尽管特征点法在视觉里程计中占据主流地位,但研究者们还是认识到它至少有以下几个缺点:(1)关键点的提取和描述子的计算十分耗时。(2)使用特征点时,忽略了除特征点以外的所有信息。一幅图像有几十万个像素,而特征点仅有几百个,因此只使用特征点丢弃了大部分可能有用的图像信息。(3)相机有时候会运动到特征缺失的地方,这些地方往往没有明显的纹理信息。例如:有时候我们会面对一堵白墙,...原创 2018-09-29 19:48:02 · 1714 阅读 · 0 评论 -
第5讲 相机与图像
先笼统的看看图像是怎么形成的:在计算机中,一张照片由很多个像素组成,每个像素记录了色彩或者亮度的信息。三维世界中的一个物体反射或发出的光线,穿过相机光心后,投影在相机的成像平面上。相机的感光器件接收到光线后,产生测量值,就得到了像素,形成了我们见到的照片。相机模型相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程可以用一个几何模型来进行描述。这个模型有很多种,其...原创 2018-10-07 17:37:03 · 2040 阅读 · 0 评论 -
ORB SLAM2的配置
硬件:1、电脑环境:Ubuntu 16.04+ROS-Kinetic-desktop-full2、笔记本自带的摄像头(其他USB摄像头也可以)一、创建ROS工作空间mkdir -p ~/catkin/srccd catkincatkin_make二、下载USB驱动地址:https://github.com/ros-drivers/usb_cam.git下载之后解压...原创 2018-10-05 11:14:48 · 961 阅读 · 0 评论 -
第4讲 李群和李代数
什么是群?什么是李群?群是一种集合加上一种运算的代数结构。这种运算必须满足“凤姐咬你”这四条性质。常见的群有:特殊正交群,特殊欧式群,它们都对矩阵乘法构成群。如果对上一讲的内容有印象的话,会回忆起来:三维旋转矩阵构成了特殊正交群 变换矩阵构成了特殊欧式群和对矩阵乘法都是封闭的,矩阵乘法对应着旋转或变换的复合,两个旋转矩阵相乘表示做了两次旋转、两个变换矩阵相乘表示做了两次欧式变换...原创 2018-10-15 22:34:21 · 3082 阅读 · 2 评论 -
第3讲 旋转向量、欧拉角、四元数
旋转向量从上一篇中已经知道,旋转可以用旋转矩阵来表示,变换可以用变换矩阵来表示,那么为什么还需要旋转向量呢?仔细想一下,矩阵表示方式至少有以下几个缺点:的旋转矩阵有9个量,但是一次旋转只有3个自由度,因此这种表达方式是冗余的。同理,变换矩阵用16个量来表示6自由度的变换也是冗余的。我们需要一种更紧凑的表达方式。 旋转矩阵自身带有约束:它必须是个正交矩阵,且行列式为1。变换矩阵也是如此...原创 2018-09-19 17:54:35 · 6282 阅读 · 0 评论 -
第3讲 变换矩阵与齐次坐标
从上一讲的内容中可以知道一次完整的欧式变换(旋转+平移)可以用式子:来表示。假设我们现在对做了两次欧式变换:和,得到的向量分别为、,用上式来表示就是:,,于是从到的变换就可以写成。这不是一个线性关系,可以想象到,如果经过多次的欧式变换,那么这个式子就会变的异常的复杂。引入变换矩阵和齐次坐标就是为了解决这个问题。变换矩阵和齐次坐标我们可以将上面从到变换的式子改写成用矩阵表...原创 2018-09-17 21:13:56 · 7005 阅读 · 0 评论 -
第7讲 视觉里程计1
前端也称为视觉里程计(VO),它根据相邻图像的信息估计出粗略的相机运动,给后端提供较好的初始值。VO的实现方法,按照是否需要提取特征,分为特征点法的前端和不提特征的直接法前端。其中,基于特征点法的前端,长久以来(直到现在)被认为是视觉里程计的主流方法,它运行稳定,对光照、动态物体不敏感,是目前比较成熟的解决方案。VO的主要问题是如何根据图像来估计相机运动。但是图像本身是一个由亮度和色彩组成...原创 2018-09-09 09:51:47 · 1466 阅读 · 1 评论 -
Ubuntu16.04上配置安装ceres
这篇博客主要介绍如何配置安装ceres库并通过使用ceres库拟合一条二次曲线来介绍ceres库的简单使用参考了以下博客:https://blog.csdn.net/weixin_39373577/article/details/81285420一、安装依赖项sudo apt-get install liblapack-dev sudo apt-get install libsuites...原创 2019-03-26 22:10:21 · 7176 阅读 · 4 评论