
视觉slam
redfivehit
这个作者很懒,什么都没留下…
展开
-
slam学习
最近学习增强现实(AR),从各种渠道学习相关的知识,这里也记录一下,方便后面自己查看SLAM,即Simultaneous Localization and Mapping,及时定位与地图创建写slam相关的程序,可以在linux环境下,例如ubuntu,会用到的库可能包括OpenCV, PCL, g2oPCL就是Point Cloud Library啦,处理点云的必备工具。原创 2017-03-26 14:04:41 · 675 阅读 · 0 评论 -
slam学习(2)
http://www.cnblogs.com/gaoxiang12/p/4652478.html从上面学习转载18 // 相机内参19 const double camera_factor = 1000;20 const double camera_cx = 325.5;21 const double camera_cy = 253.5;22 const double转载 2017-03-26 14:42:19 · 643 阅读 · 0 评论 -
slam学习(3)
SLAM是由“定位”(Localization)和“建图”(Mapping)两部分构成的。现在来看定位问题。要求解机器人的运动,首先要解决这样一个问题:给定了两个图像,如何知道图像的运动关系呢?假如有两帧数据,目的是求出一个旋转矩阵RR和位移矢量tt,这个问题可以用经典的ICP算法求解。其核心是奇异值分解(SVD)。OpenCV中的函数就可以求解此问题,不了解原理细节的话,可以直接使用open转载 2017-03-26 15:29:58 · 470 阅读 · 0 评论 -
slam学习(4)
http://www.cnblogs.com/gaoxiang12/p/4669490.html得到两帧图像的选择矩阵和位移矩阵,就可以把两张图像的点云给拼接起来,形成更大的点云。点云的拼接,实质上是对点云做变换的过程。这个变换往往是用变换矩阵(transform matrix)来描述的:T=[R3×3O1×3t3×11]∈R4×4T=[R3×3t3×1O1×31]∈R转载 2017-03-26 16:13:05 · 453 阅读 · 0 评论 -
slam学习(5)-vo (visual odometry)视觉里程计和图优化工具g2o
http://www.cnblogs.com/gaoxiang12/p/4754948.html什么是视觉里程计呢?简而言之,就是把新来的数据与上一帧进行匹配,估计其运动,然后再把运动累加起来的东西。FRAME readFrame( int index, ParameterReader& pd ) 是读取帧数据的函数。告诉它我要读第几帧的数据,它就会乖乖的把数据给找出来,返转载 2017-03-26 16:36:19 · 3428 阅读 · 0 评论 -
slam学习--基本知识
SLAM模型的运动方程和观测方程方程中的位姿可以用变换矩阵来描述,然后用李代数进行优化(可以用李群表示,但是群比较复杂,用李代数近似模拟,用李代数优化)观测方程由相机成像模型给出,其中内参是随着相机固定的,而外参就是指相机的位姿(位置xyz和姿态朝向)原创 2017-08-16 20:16:56 · 440 阅读 · 0 评论 -
SLAM学习--非线性优化
slam中经常遇到非线性优化问题:许多个误差项平方和组成的最小二乘问题,两个最常见的梯度下降方法-非线性优化方案:高斯牛顿法、裂纹伯格-马夸尔特方法两个c++的优化库:来自谷歌的ceres库和基于图优化的g2o(g2o(General Graph Optimization),使用ceres和g2o可以拟合曲线g2o是将非线性优化与图论结合起来的理论,首先把问题转换为图优化,定义新的顶点和边原创 2017-08-17 17:30:04 · 1468 阅读 · 0 评论 -
SLAM学习--三维空间刚体运动
旋转矩阵:坐标系之间的欧式变换,通过一个旋转矩阵实现,3x3的,9个量表达3个自由度(也就是物体位置xyz的表示),a=Ra^,R是3x3矩阵齐次坐标:三维向量后面加个常数1,(x、y、z、1),变成四维向量变换矩阵:对于齐次坐标的四维向量,把旋转和平移写到一个矩阵里,就是变换矩阵,左上角是3x3的旋转矩阵,右上角是平移向量3x1,左下角0向量,右下角是1旋转向量:由于任意旋转可以通过原创 2017-08-15 15:19:19 · 2317 阅读 · 0 评论 -
slam中的Bundle adjustment是什么
机器人导航中,2D的特征reproject回三维域内,和真正的3D点的位置会有偏差。但是在物理意义上,3D点和投射到摄像机的2D特征点是同一个点。所以这个误差出现在计算3D点时摄像机自身旋转矩阵和位移向量上。Bundle Adjustment的作用是,通过least square等算法,去最小化这个偏差,以此得到机器人移动和方向的精确值。这在物理意义上是最精确的,是Visual SLAM问转载 2017-09-22 15:58:56 · 1240 阅读 · 0 评论