- 博客(14)
- 资源 (4)
- 收藏
- 关注
原创 SLAM学习——回环检测
1.回环检测回环检测的关键,就是如何有效的检测出相机经过同一个地方这件事。它关系到我们估计的轨迹和地图在长时间下的正确性。由于回环检测提供了当前数据与所有历史数据的关联,在跟踪算法丢失后,我们还可以利用重定位。有些时候,我们把仅有前端和局部后端的系统称为VO,把带有回环检测和全局后端的系统称为SLAM。 回环检测的方法:基于里程计的几何关系和基于外观。 基于几何关系是说,当我们发现当...
2017-07-28 00:40:29 15755 6
原创 SLAM学习——后端(二)
1.投影模型和BA代价模型对于观测模型而言,我们可以简单的用以下的模型进行表示:z=h(x,y)上图中,P点是世界坐标系的点,中间的畸变模块满足:r2c=u2c+v2crc2=uc2+vc2r_{c}^{2}=u_{c}^{2}+v_{c}^{2}把观测返程抽象出来,有:z=h(x,y) ,这里的x指代此时相机的位姿,即外参R,t,对应的李代数为 ξξ\xi。路边y即为三维点p,若...
2017-07-27 01:10:40 2888
原创 SLAM学习——后端(一)
1.概述对于里程计而言,只有短暂的记忆。而在后端优化中,我们更加考虑一段更长时间内(或所有时间内)的状态估计问题。 与之前略有不同,我们令xkxkx_{k}为k时刻的所有未知量,包含了当前位姿与m个路标点,则写成表达式可为:xk=Δ{xk,y1⋯ym}xk=Δ{xk,y1⋯ym}x_{k}\overset{\Delta }{=}\begin{Bmatrix} x_{k}, & y_{1}...
2017-07-22 13:54:57 3404 1
原创 Ubuntu14.04 opencv2.4.8和opencv3.2多版本共存
首先,由于本人使用了ROS,因此在安装ROS的时候安装了ros-indigo-destop-full顺便安装了版本2.4.8的opencv,因为ROS里面的一些文件需要依赖于该版本的opencv,例如cv_bridge和image_pipeline。所以卸掉opencv2.4.8再装opencv3.2(因为有些代码需要用到opencv3)貌似不明智。故我们在原有的opencv2.4.8的版本基础上...
2017-07-18 16:50:55 8611 10
原创 设计前端(二)
1.特征提取和匹配前面我们所说的,仅凭俩帧的估计是不够的。我们会将特征点缓存成一个小地图,计算当前帧和地图之间的位置关系。忽略掉很多关键点,只关心当前帧与上一时刻帧(即参考帧),即我们只考虑如下图所示的运动:以传统的匹配特征点(ORB-slam)——求PnP的方法(接下来可以使用光流法/直接法——ICP求解ICP),流程如下图:1.对新来的当前帧,提取关键点和描述子。 2.如...
2017-07-17 23:29:43 524 1
原创 设计前端(一)
1.搭建VO框架A. SLAM库是一个小型库,库的组织结构如下:1.bin 用来存放可执行的二进制文件。 2.include/myslam存放SLAM模块的头文件,主要是.h文件,当把包含目录设到include,引用自己的头文件时,需要写include“myslam/xxx.h”。 3.src 存放源代码文件,主要是.cpp文件。 4.test 存放测试文件,也是.cpp文件。 5...
2017-07-17 19:33:29 818
原创 视觉里程计(四)
1.直接法如下图为空间点P在第一帧和第二帧的映射,而R,t(exp(ξ∧)exp(ξ∧)exp(\xi^{\wedge } ))则为第一帧到第二帧的转换矩阵。在直接法中,不通过特征法,而是通过相机的位姿(在直接法中是已知的)来估计第二个相机中的像素位置。直接法:当相机估计位置不好时,p2p2p_{2} 和 p1p1p_{1}的外观就会有差别。通过优化位姿,来减小差别。这个又是一个最小二...
2017-07-15 21:52:16 2004
原创 视觉里程计(三)
1.特征点法分析及改进特征法在视觉里程计中虽占主流,但是依旧有其缺点: 1.关键点的提取与描述子的计算非常耗时。 2.使用特征点时,忽略了出特征以外的所有信息。一副图像有几十万个像素,而特征点只有几百个,可能忽略了大部分有用的图像。 3.相机会运动到特征缺失的地方,如一堵墙一个空荡荡的走廊等。解决思路: 1.保留特征点,但只计算关键点,不计算描述子,同时使用光流法跟踪特征点运动。 ...
2017-07-14 22:04:08 2857 1
原创 视觉里程计(二)
1.3D-2D:PnPPnP(Perspective-n-Point)是一种求解3D到2D点对运动的方法。描述了当知道n个3D空间点及其投影位置时,如何估计相机的位姿。 对象:双目或RGB-D视觉里程计 原理:如果俩张图像中其中一张特征点已知,那么最少只需要3个点对(一个额外点验证结果) 优势:对比对极约束而言,PnP只需要3个点即可估计其相机的位姿PnP求解问题的方法:3对点估计位...
2017-07-12 22:57:06 4639
原创 SLAM——ORB特征提取、对极约束(E\F)、单应矩阵和三角测量
1.特征点法视觉SLAM主要分为视觉前端和优化后端。前端也称为视觉里程计(VO),根据相邻图像的信息估计处粗略的相机运动,给够后端提供较好的初始值。 VO的实现方法,按是否需要提取特征,可分为特征点的前端和不提特征点的直接法前端。VO的主要问题是如何根据图像估计相机的运动:从图像选取有代表性的点(路标),在相机发生微笑变化时会保持不变,接着从各个图片找到相同的点,进而讨论相机位姿估计问题。...
2017-07-12 00:58:52 11037
原创 Ceres库和g2o库的使用
1.Ceres库Ceres库向通用的最小二乘问题的求解,定义优化问题,设置一些选项,可通过Ceres求解。 Ceres求解的最小二乘问题最一般形式为:minx12∑ipi(||fi(xi1,⋯xin)||2),s.t.lj≤xj≤ujminx12∑ipi(||fi(xi1,⋯xin)||2),s.t.lj≤xj≤uj\underset{x}{min}\frac{1}{2}\sum_{i}p...
2017-07-11 16:09:45 6464 1
原创 SLAM学习——非线性优化
1.状态估计问题对于SLAM经典模型,我们知道是由一个运动方程和一个观测方程构成,如下方程:{xk=f(xk−1,uk)+wkzk,j=f(yj,xk)+vk,j{xk=f(xk−1,uk)+wkzk,j=f(yj,xk)+vk,j\left\{\begin{matrix} \mathit{x}_{k}=f(\mathit{x}_{k-1},\mathit{u}_{k})+\mathit{...
2017-07-10 23:07:42 5491 2
原创 SLAM学习——相机与图像
1.针孔模型一般而言,我们通过小孔成像来描述相机的成像原理,对其进行数学建模,如下图所示。其中O-x-y-z为相机坐标系,O’-x’-y’-z’为成像平面物理坐标系,o-u-v为像素坐标系,通过此几何模型,我们可以得到:Z/f=-X/X’=-Y/Y’,其中负号表示这个在成像平面上所形成的像是倒的,我们可以对该模型进行一定的处理,将负号去掉,得到以下模型:以上分别为真实成像平面、...
2017-07-10 16:05:36 2681
原创 SLAM学习——李群与李代数
1.李群与李代数基础三维旋转矩阵构成特殊正交群SO(3),而变换矩阵构成了特殊欧氏群SE(3):其中特殊正交群SO(3)和特殊欧氏群SE(3),对加法不封闭,而对乘法封闭。则有:群,是一种集合加上一种运算的代数结构,主要满足有:封闭性、结合律、幺元、逆等性质。而李群,则是指具有连续光滑性质的群。对于李代数,考虑任意旋转矩阵 R,会随着时间变化而变化,即为时间的函数:R(t)。 则有:通过对其时间的
2017-07-09 20:12:42 17791
Opencv2链接CUDA9.0中cmake修改版
2019-05-29
图优化工具,G2o
2018-09-26
《Robotics, Vision and Control — Fundamental Algorithms in MATLAB》
2018-04-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人