SLAM
文章平均质量分 91
小落叶不憨
又可以发一篇博客了!
展开
-
针孔相机模型
针孔相机模型中一般会涉及到图像像素坐标系、图像物理坐标系、相机坐标系、归一化平面坐标系和世界坐标系这5个坐标系。原创 2023-01-28 17:33:35 · 654 阅读 · 0 评论 -
视觉SLAM:ORB视觉里程计的简单实现(四)
ORB视觉里程计的简单实现之四更新内容均匀分布的ORB算法介绍实验结果更新内容使用ORB-SLAM2中的均匀分布的ORB特征点提取算法,对原始的特征提取算法进行替换,使得提取的特征点均匀分布在场景中。这样做的好处在于:1、集中分布的特征点如果某一特征点出现错误的匹配,那么这一特征点周围可能还存在大量的特征点也同样是误匹配,这样的话产生的误差就可能比较大。2、均匀分布的特征点可以使得计算的空间三维点分布在场景中的各个区域,这样在使用PNP算法计算位姿时,一般不会产生错误的估计。(PNP算法如果使用平原创 2021-07-20 23:16:35 · 1113 阅读 · 1 评论 -
视觉SLAM:ORB视觉里程计的简单实现(三)
ORB视觉里程计的简单实现之三一、概述二、更新部分1、视觉里程计类2、地图点类3、相机类4、优化类三、其他一、概述与之前不同的是,本次代码更新后使用局部地图进行特征匹配,然后计算位姿。第一步依然是提取场景中的ORB特征点,然后根据深度信息获得其在世界坐标系(第一帧相机所在的相机坐标系)下的三维坐标。最后将每个三维点构建成地图点类(包括三维坐标、方向、ID、描述子等),并放在局部地图中,形成初始的局部地图。第二步是对新来的图像帧提取ORB特征点,然后通过投影的方式,将当前帧可以观测到三维点的描述子与原创 2021-07-14 22:36:51 · 1432 阅读 · 2 评论 -
视觉SLAM:ORB视觉里程计的简单实现(二)
ORB视觉里程计的简单实现之二概述一、添加部分1.1 添加数据转换的通用函数1.2 优化函数二、更新部分2.1 视觉里程计类2.2 图像帧类三、优化效果概述接上文视觉SLAM:ORB视觉里程计的简单实现(一),上文中的代码实现后,发现位姿不稳定,抖动比较厉害。因此在此基础上对进行优化。使用G2O库,根据重投影误差,利用BA优化算法对两帧之间的位姿进行优化,使运动比较平滑。对前面文章中的一些问题进行修改。一、添加部分1.1 添加数据转换的通用函数主要用于G2O格式的位姿数据和Eigen矩阵原创 2021-07-01 18:55:15 · 1193 阅读 · 0 评论 -
视觉SLAM:ORB视觉里程计的简单实现(一)
视觉里程计的简单实现之一概述一、基础视觉里程计的算法实现步骤二、具体实现细节1.公用2.相机类3.图像帧4.系统类5.视觉里程计类6.其他6.1 显示类6.2 地图点类6.3 地图类6.4 主函数实现7.完整工程代码与实验效果概述对于一个简单的视觉里程计,需要做的是对采用的相机进行标定,不过为了简单起见,采用数据集进行实验,先熟悉整个算法流程,然后在逐个模块地推敲,比较好。单目相机和双目相机视觉里程计都需要计算空间三维点的深度信息,而RGB-D相机可以直接获得深度信息,因此我们采用RGB-D相机拍摄原创 2021-06-05 21:17:51 · 4126 阅读 · 14 评论 -
vs2017+g2o编译与配置
由于之前下载了最新版本的额g2o一直没有编译成功,所以下载了一个低版本的g2o,结果直接成功了,因此个人认为编译成功的重点在于版本一定要选择正确。具体的编译步骤为:1、g2o-20170730的下载(2020版本的一直没有编译成功,,,)https://github.com/RainerKuemmerle/g2o/tree/20170730_git2、Eigen依赖库的下载(我用的是eigen3.2.10,版本不能太高,否则会报错,参见博客https://blog.csdn.net/weix原创 2021-02-18 18:49:30 · 1793 阅读 · 0 评论 -
vs2013+cuda8.0+xtion运行bundlefusion
1、代码下载:https://github.com/niessner/BundleFusion2、依赖库MLib:https://github.com/niessner/mLib依赖库mLib external libraries:http://kaldir.vc.in.tum.de/mLib/mLibExternal.zip3、最终的目录结构如下:BundleFusion-master/ external/ mLib/ # this is the submodule you r原创 2020-09-05 18:50:56 · 317 阅读 · 0 评论 -
windows7 VS2017 x64 编译OpenMVG和OpenMVS记录
参考博客:https://blog.csdn.net/mitsubishisony/article/details/52332470?utm_source=blogxgwz1简单记录在编译过程中的步骤和遇到的问题:平台:windows7 VS2017 x641、OpenMVG的编译:VS2017安装,注意没有证书问题 代码下载,速度慢。可以到码云上构建仓库下载,但是还需要手动下载几个依赖库 cmake-3.17.3-win64-x64 需要编译ceres库(eigen3.2.4,glo原创 2020-07-11 11:49:51 · 864 阅读 · 0 评论 -
SLAM基础问题总结(3)
1、推导直接法BA,直接法的分类,三个假设及优劣p1=[uv1]=1Z1KP\boldsymbol{p}_{1}=\left[\begin{array}{c}{u} \\ {v} \\ {1}\end{array}\right]=\frac{1}{Z_{1}} \boldsymbol{K} \boldsymbol{P}p1=⎣⎡uv1⎦⎤=Z11KP.p2=[uv1]=1Z2K(RP...原创 2019-09-13 21:18:45 · 649 阅读 · 0 评论 -
SLAM基础问题总结(2)
1、什么是对极约束?基础矩阵F的推导过程,F的秩原创 2019-08-28 21:12:32 · 1095 阅读 · 0 评论 -
SLAM基础问题总结(1)
1、如何对匹配好的点做进一步的处理,更好保证匹配效果(1)确定匹配最大距离,汉明距离小于最小距离的两倍(2)使用KNN-matching算法,令K=2。则每个match得到两个最接近的descriptor,然后计算最接近距离和次接近距离之间的比值,当比值大于既定值时,才作为最终match。(3)RANSAC(使用RANSAC找到最佳单应性矩阵。由于这个函数使用的特征点同时包含正确和错误匹配点...原创 2019-08-25 22:04:30 · 792 阅读 · 0 评论 -
ORB_SLAM系列总结
1、最早的特征点法,并把定位与跟踪分为两个线程是PTAM(Parallel Tracking and Mapping for Small AR Workspaces)可以说是特征点法SLAM的起源之一。论文:http://www.robots.ox.ac.uk/~gk/publications/KleinMurray2007ISMAR.pdf代码:https://github.com/...原创 2019-04-09 15:29:28 · 6486 阅读 · 6 评论 -
惯导SLAM中IMU预积分
RGBD-SLAM受视野范围影响,双目SLAM结构较为复杂,还是看看单目SLAM吧,但是由于单目SLAM的深度不确定性,因此还是先研究下IUM......由于公式太多,还是直接给出网址大家去看原始文章吧.这两篇博客写的很清楚https://blog.csdn.net/wangshuailpp/article/details/80647621https://blog.csdn.net...原创 2018-09-16 16:50:03 · 4128 阅读 · 0 评论 -
ORB-SLAM2中ROS+RGBD运行实例
最近想实现基于ROS+RGBD相机的ORB-SLAM2,刚好手上有个kinect,虽然是V1版本的,不过有玩的就好了O_O(1)在ubuntu上安装kinectV1相关驱动文,参考文章https://blog.csdn.net/Felaim/article/details/79579973驱动安装成功之后就可以使用kinectV1了。(2)ORB-SLAM2(ROS+RGBD)运行...原创 2018-09-14 20:41:31 · 9140 阅读 · 7 评论 -
VIORB-SLAM编译
ORB-SLAM2可以说是目前最优秀的基于特征带的视觉SLAM,由于是开源的,很多人在此基础上进行了改进与应用.废话不多说,下面说说关于IMU+ORB的编译流程与运行结果.论文是这篇论文:Mur-Artal, R., & Tardós, J. D. (2017). Visual-inertial monocular slam with map reuse.IEEE Robotics ...原创 2018-09-09 19:09:01 · 5803 阅读 · 2 评论 -
SVO代码调试
SVO https://github.com/uzh-rpg/rpg_svo Paper: http://rpg.ifi.uzh.ch/docs/ICRA14_Forster.pdf虽然是14年就出来的了,时间久远,但是是半直接法的代表作之一,代码逻辑清晰,可读性强,因此值得研究.废话不多说,下面说明编译运行过程https://github.com/uzh-rpg/rpg_svo/wi...原创 2018-09-27 21:30:07 · 921 阅读 · 0 评论 -
ubuntu14.04 CUDA8.0 DynSLAM编译与运行
本文介绍2018年的一篇基于深度学习,同时具有稠密地图的视觉SLAM------Dynslam.标题:Robust Dense Mapping for Large-Scale Dynamic Environments在这里可以找到文章主页和源代码:http://andreibarsan.github.io/dynslam在这里找到编译方法和部分错误解决方案:https://blog.c...原创 2018-10-19 20:55:31 · 1378 阅读 · 5 评论 -
ubuntu14.04 VI-MEAN编译与运行
VI-MEAN是基于单目和IMU的具有稠密地图重建的SLAM,全名:Real-time Monocular Dense Mapping on Aerial Robots using Visual-Inertial Fusion是2017年香港科技大学发表的论文之一.代码地址:https://github.com/dvorak0/VI-MEAN下面说一下如何编译运行这个代码:根据github...原创 2018-10-20 19:13:53 · 1017 阅读 · 5 评论 -
ORB-SLAM2到dynaSLAM编译
这是在ORB-SLAM2基础上针对于动态场景进行改进的版本。利用MASK-RCNN提取场景中动态物体的语义信息,根据掩膜去掉误匹配,同时采用图像恢复技术进行场景恢复和建图,是比较优秀的SLAM算法。下面看看具体编译运行过程:1、源码:https://github.com/BertaBescos/DynaSLAM2、文章:DynaSLAM: Tracking, Mapping and Inp...原创 2019-01-19 11:23:50 · 5967 阅读 · 46 评论 -
VINS技术路线与代码详解
原文地址:https://blog.csdn.net/wangshuailpp/article/details/78461171VINS技术路线写在前面:本文整和自己的思路,希望对学习VINS或者VIO的同学有所帮助,如果你觉得文章写的对你的理解有一点帮助,可以推荐给周围的小伙伴们,当然,如果你有任何问题想要交流,欢迎随时探讨。话不多说,下面上正文。VINS代码地址:https:...转载 2019-03-12 21:17:46 · 1126 阅读 · 0 评论 -
ORB-SLAM轨迹保存问题
ubuntu14.04,64位系统调试ORB-SLAM时出现不能保存相机运动轨迹问题解决方案:1:将保存轨迹函数SLAM.SaveKeyFrameTrajectoryTUM()放在SLAM.Shutdown()之后,但是并不能解决线程不能正常关闭问题.2:system.cc的Shutdown()中添加下面两句话:delete mpViewer;mpViewer = static...原创 2018-08-30 15:30:40 · 5078 阅读 · 2 评论