【20年VIO梳理】
19-20年VIO 梳理
- 1. 开源代码介绍: DSM
- 2. FMD Stereo SLAM:融合MVG和直接方法,实现准确,快速的双目SLAM
- 3. 基于VINS-Mono开发的SPVIS
- 4. 改进:一种基于光流的动态环境移动机器人定位方案
- 5. PVIO:基于先验平面约束的高效VIO
- 6. 具有占有率正态分布变换的基于图的实时SLAM
- 7. PL-SLAM:结合点线特征的双目SLAM
- 8. 基于地标外貌和空间相对位置的图匹配的长期地点识别
- 9. 半直接单目视觉和视觉惯性SLAM及其闭环检测
- 10. 松耦合的半直接法单目SLAM
- 11. 基于动态边缘化的VI-DSO
- 12. 基于位姿图的无人水下航行器室内导航测试
- 13. 水下领域基于状态估计的开源VIO实验对比
- 14. DISCOMAN:用于室内里程计,制图和导航的室内场景数据集
- 15. 地面机器人的视觉辅助定位(vins on wheel)
- 16. GPS-denied环境下结合UWB-Vision方法的UAVS自动停泊
- 17. 基于基准点的开源视觉-惯导运动捕捉系统
- 18. 改进:加入提示的二进制特征描述子用于视觉地点重识别
- 19. 用于鲁棒定位的高效的视觉上下文分类器(特征点新的描述方法)
- 20. 港科大:基于通用优化的多传感器全局位姿估计框架(vins-fusion)
- 21. OmniSLAM:多鱼眼相机的SLAM系统
- 22. 基于ORB-SLAM2可持续保存地图的扩展方案
- 23. ORB-SLAM2 / ORB-SLAM3 相关改进代码
- 24. <实验测评>综合比较几种适用于无人机的单目惯性里程计算法
- 25. <综述>基于滤波和优化的视觉惯性里程计综述
- 26. 室内slam数据集:Lifelong SLAM数据集与挑战赛
- 27. <各种数据集>最强 SLAM Datasets 合集
- 28. <标定>利用直线和平面对应关系自动标定相机与三维激光雷达之间的外参
- 29. 间歇的GPS辅助VIO:在线初始化和标定
- 30.用于室内环境下的多传感器融合slam数据集
- 31. SlamBench2:视觉SLAM的多目标头对头基准测试
- 32. 港科大——双目视觉深度估计及3D地图构建工作
1. 开源代码介绍: DSM
Direct Sparse Mapping(DSM)是一个采用直接法的单目视觉SLAM系统,可以看成是DSO的一个增强版本。DSM与DSO最大的不同在于,DSM可以处理地图点的重观测。 为此,DSM借鉴了ORB-SLAM2中的局部窗口和共视关系等概念。DSM最大的优点在于代码的模块化做的很好,程序的各个模块和各个类都做了很好的封装,比DSO的代码要清晰易懂的多。而且DSM的代码里也有很多可以借鉴的地方,例如DSM会实时统计各个帧的光度误差的分布(用学生t分布去拟合),DSM内部也用内存池和线程池来对内存资源和计算资源进行抽象和封装。DSM非常适合对直接法感兴趣的朋友去学习。
代码链接
论文链接
视频展示
相关参考:
Literature Review: 基于稀疏直接法的建图 Direct Sparse Mapping
Direct Sparse Odometry
论文: Direct Sparse Mapping
算法简介: 之前的直接法里程计,例如DSO,采用Schur Complement来边缘化掉滑窗外的点和位姿,这导致其无法处理地图点的重新观测。本文提出一个完整的单目直接法SLAM系统,可以处理地图点的重观测,并且在EuRoC数据集上取得了直接法里面最精确的结果。本文的贡献在于:可以处理地图点的重观测,利用共视关系来选择关键帧,采用coarse-to-fine的策略来做光度优化以增加收敛半径以及用t分布拟合光度误差来进行外点管理。
2. FMD Stereo SLAM:融合MVG和直接方法,实现准确,快速的双目SLAM
标题:FMD Stereo SLAM: Fusing MVG and Direct Formulation Towards Accurate and Fast Stereo SLAM
作者:Fulin Tang, Heping Li, Yihong Wu
来源:2019 IEEE International Conference on Robotics and Automation (ICRA), May 20-24, 2019, Montreal, Canada
(中科院,特征点法和直接法结合)
泡泡机器人描述:
摘要描述:
我们提出了一种新颖的双目视觉SLAM框架,同时兼顾了精度和速度。该框架充分利用了基于关键特征的多视图几何(MVG)和基于直接方法的优势。在前端,我们的系统执行直接公式和恒定运动模型来预测稳健的初始姿势,重新投影局部地图以找到3D-2D对应,并通过重投影误差最小化来最终确定姿势。这个前端过程使我们的系统更快。在后端,MVG用于估计3D结构。插入新关键帧时,通过三角测量生成新的地图点。为了提高所提出系统的准确性,删除了坏的地图点并通过束调整保持全局地图。特别地,执行立体约束以优化地图。这种后端流程使我们的系统更加准确。对EuRoC数据集的实验评估表明,所提出的算法可以在消费者计算机上以每秒100帧以上的速度运行,同时实现高度竞争的准确性。
3. 基于VINS-Mono开发的SPVIS
ICRA 2020 Hierarchical Quadtree Feature Optical Flow Tracking Based Sparse Pose-Graph Visual-Inertial SLAM
基于VINS-Mono开发了SPVIS,前端提出hierarchical quadtree方法提高optical flow feature tracking的性能,大幅降低需要的feature数量。后端采用固定时长的sliding window做全局优化,窗口之外仅保留pose graph。整个系统效率很高,从而支持长期运行。
4. 改进:一种基于光流的动态环境移动机器人定位方案
标题:AnAccurate Localization Scheme for Mobile Robots Using Optical Flow in DynamicEnvironments
作者:Jiyu Cheng, Yuxiang Sun, Wenzheng Chi, Chaoqun Wang, Hu Cheng and Max Q.-H. Meng
来源:2018 IEEE International Conference on Robotics and Biomimetics
泡泡机器人
摘要描述:
提出了一种利用光流从提取的特征点中识别和消除动态特征点的新方法。将静态特征点加入到视觉SLAM算法中进行位姿估计。我们将我们的方法与ORB-SLAM系统集成,并利用TUM数据集中的动态序列验证了所提出的方法。整个系统可以实时运行。定性和定量的评估表明,我们的方法大大提高了视觉SLAM在动态场景中的性能。
评:利用前后帧特征点变换,计算光流大小来移除动态点
5. PVIO:基于先验平面约束的高效VIO
论文:Jinyu Li, Bangbang Yang, Kai Huang, Guofeng Zhang, and Hujun Bao*. Robust and Efficient Visual-Inertial Odometry with Multi-plane Priors. PRCV 2019, LNCS 11859, pp. 283–295, 2019.
论文下载链接
简介
代码仓库
摘要描述:
在人造环境中,通常都会有平面结构,如果这些平面信息能够被有效地利用起来,将有助于提升VIO的鲁棒性。为此,我们提出了一个基于多平面先验信息的高效鲁棒的轻量级VIO系统PVIO。在这个工作中,我们提出了一个新颖的视觉-惯性-平面PnP算法来实现快速的定位,同时基于重投影一致性来可靠地扩展平面,从而增强在深度高度不确定情况下的跟踪鲁棒性。此外,在滑动窗口优化模块中提出了一个无结构的平面距离约束项,以及相应的边缘化和滑窗策略,可以有效降低计算复杂度,同时保证良好的精度。EuRoC和TUM-VI两个数据集上的实验结果表明,PVIO在跟踪精度上跟现在的前沿VI-SLAM系统VINS-Mono相当,但只需要单线程运行,效率上具有明显的优势。
6. 具有占有率正态分布变换的基于图的实时SLAM
标题: Real-Time Graph-Based SLAM with Occupancy Normal Distributions Transforms
作者:Cornelia Schulz and Andreas Zell
来源:2020 IEEE International Conference on Robotics and Automation (ICRA)
基于NDT地图的2D laser SLAM,比occupancy版本的baseline(Cartographer)精度和速度都更好一些。
泡泡机器人
摘要描述:
在这项工作中,我们对(O)NDT匹配函数进行了重新格式化,使其成为最小二乘问题,可以使用各种健壮的数值和分析非线性优化器来解决。此外,我们提出了一种新颖的全局(O)NDT扫描匹配器,用于闭环。在我们的评估中,我们的NDT和ONDT方法能够胜过我们从Google Cartographer实施中采用的基于占用网格图的方法。

7. PL-SLAM:结合点线特征的双目SLAM
标题:PL-SLAM: A Stereo SLAM System Through the Combination of Points and Line Segments
作者: Ruben Gomez-Ojeda, Francisco-Angel Moreno
来源:TRO 2019
泡泡机器人
摘要描述:
本文提出了PL-SLAM,这是一种双目视觉SLAM系统,它结合了点和线段,能够在更广泛的场景中稳定地工作,特别是在点特征在图像中缺乏或分布不均匀的情况下。PL-SLAM在过程的所有实例中都利用了点和线段:视觉里程计、关键帧选择、束调整等。我们还通过一种新颖的词包方法提供了一个循环闭合过程,该方法利用了这两种特征的组合描述能力。
主要贡献:
1.第一个实时开源的同时使用点和线分割特征深度SLAM系统,并且在弱纹理环境中传统点特征方法失效的情况下拥有较高的运行鲁棒性。
2.一种新的同时处理点和线特征调整关键字位姿。
3.一种扩展BoW方法同时考虑点和线特征分割提高闭环检测
注:整个方法基于ORB-SLAM进行开展。
C++开源代码
8. 基于地标外貌和空间相对位置的图匹配的长期地点识别
标题:Long-term Place Recognition through Worst-case Graph Matching to Integrate Landmark Appearances and Spatial Relationships
作者:Peng Gao and Hao Zhang
来源:ICRA2020
泡泡机器人
摘要描述:
地点识别是很多机器人应用中的SLAM技术中的重要环节。最近,一些采用地标信息来解决长期地点识别中场景变化问题的方法取得了不错的效果。然而先前的方法未考虑地标的变化,例如旧的地标的消失和新的地标的出现。并且,这些方法对地标的描述通常仅仅使用了地标的视觉信息或者几何信息。本文设计了一个图表示一个地方,通过编码距离和角度空间关系以及地标的视觉外观。然后,地点识别问题可以转换为最坏情况下的图匹配问题。该算法方法通过计算相似性最小的地标之间的距离和角度空间关系来度量地点的相似度。如果最差情况下,地标的视觉相似度较低,那么即使其几何位置相识度较高,也被作为不同的地点。
主要贡献:
1、提出了一种融合地标视觉信息和相对位置的几何信息的地点编码方法,改善了基于地标的地点编码方式;
2、将地点识别问题作为最差情况下的图匹配问题,从而有效解决了长期地点识别中路标变动的问题
9. 半直接单目视觉和视觉惯性SLAM及其闭环检测
标题:Semi-direct monocular visual and visual-inertial SLAM with loop closuredetection
作者:Shao-peng Li, Tao Zhang, Xiang Gao, Duo Wang, Yong Xian
来源:Robotics and Autonomous Systems 2018
泡泡机器人
摘要描述:
作者提出了 一个新的半直接单目视觉同时定位与建图(SLAM)系统。它既能保持直接法的快速性,又能具有基于特征方法的高精度和闭环检测能力。该系统提取和匹配每一个关键帧中的ORB特征,并使用不需要特征提取和匹配的直接法来跟踪每一个非关键帧。关键帧用来全局或局部优化以及闭环,而非关键帧则用来做快速跟踪和定位,因此该系统结合了直接法和特征方法的优势。此外,还提出一个单目视觉惯性SLAM系统,基于视觉SLAM来融合惯性测量数据。该系统能够成功恢复尺度信息。
主要贡献:
- 提出了一个新的半直接单目视觉SLAM系统 - SVL (semi-direct, visual and loop closure detection);
- 同时还提出了一个半直接单目视觉惯性SLAM系统,即在上述系统基础上融合惯性测量数据 - SVL-VI (visual-inertial);
- 既能保持直接法的快速性,又具有基于特征方法的高精度和闭环检测能力。
- 给出了半直接SLAM系统具有竞争力的测试结果。
10. 松耦合的半直接法单目SLAM
标题:Loosely-Coupled Semi-Direct Monocular SLAM
作者:Seong Hun Lee and Javier Civera
来源:International Conference on Robotics and Automation (ICRA),2019
泡泡机器人
摘要描述:
本文提出了一种新颖的单目同步定位与建图(SLAM)方法,该方法结合了直接法和特征点法的优势。提出的对直接法视觉里程计和基于特征点法松耦合的SLAM执行三个层次的并行优化:(1)联合局部特征和相机运动的光度捆集调整(BA);(2)改善关键帧位姿和相关联地图点的几何BA;(3)存在闭环检测时全局地图一致性的位姿图优化。这是通过将基于特征的边缘化关键帧的操作限制为使用直接法里程计模块实时实现的。对两个数据集的详细评估表明,我们的系统在总体准确性和鲁棒性方面优于最新的单目里程计和SLAM系统。
贡献:
(1)局部:对于局部精度来说,使用直接法能够鲁棒,短期,半稠密并且迅速的来跟踪相机的位姿,
(2)全局:使用基于特征点法来改善关键帧的位姿,同时进行回环检测。建立了一个可以复用的全局,长期,稀疏特征点的地图。
评:可关注下作者是如何处理特征点法和直接法在前端的松耦合处理
算法开源
11. 基于动态边缘化的VI-DSO
标题:Direct Sparse Visual-Inertial Odometry using Dynamic Marginalization
作者:Lukas von Stumberg, Vladyslav Usenko, Daniel Cremers
来源:IEEE International Conference on Robotics and Automation (ICRA), 2018, Brisbane
泡泡机器人
摘要描述:
本文提出了一个新的视觉惯导里程计(VIO)VI-DSO,其通过光度最小化和IMU的测量值来估计相机的位姿和恢复稀疏场景。
在视觉部分,VI-DSO也使用了光束法平差进行优化,但是与传统基于特征点的系统不同,本系统中优化的对象是光度误差;这意味着,本系统不仅能够跟踪角点,还可以跟踪梯度足够大的像素点。
而对于IMU部分,本文使用预积分获取视频帧之间的相对关系,并将其作为约束添加到优化过程中;在本系统中,尺度和重力方向也是需要估计的参数,与位姿参数等等一起进行估计和优化。同时针对IMU一般需要一段时间后才能获取尺度信息的问题,本文中的VI-DSO能够首先以任意尺度初始化,而不需要等待IMU得到足够的观测值。
另外,为提高计算效率,本文对“老”的参数进行部分边缘化(partial marginalization),即本文提出的动态边缘化(Dynamic Marginalization);这种边缘化方法甚至能够在尺度未知的情况下进行部分边缘化。最后本文在EuRoC数据上进行测试,实验结果表明VI-DSO是目前最优的算法。
12. 基于位姿图的无人水下航行器室内导航测试
泡泡机器人
摘要:
本文提出了基于位姿图的室内导航测试的初步实验结果,旨在应用于无人水下航行器(UUV)。为了验证其有效性并估计位姿图技术的性能,我们使用地面机器人kobuki进行了室内测试。在此实验中,机器人在办公室和走廊的室内移动来连续创建机器人路径的位姿图,位于机器人正面的LIDAR传感器也被用于构建地图。
评:作者在机器人上使用了激光和地表码
13. 水下领域基于状态估计的开源VIO实验对比
标题:Experimental Comparison of Open Source Visual-Inertial-Based State Estimation Algorithms in the Underwater Domain
作者:Bharat Joshi, Sharmin Rahman, Michail Kalaitzakis, Brennan Cain, James Johnson, Marios Xanthidis, Nare Karapetyan, Alan Hernandez, Alberto Quattrini Li, Nikolaos Vitzilaios, and Ioannis Rekleitis
来源:2019 IROS
泡泡机器人
摘要描述:
本文中比较了最近的10个VIO开源包为了提供对它们性能的见解和解决当前挑战的指导方针。具体地,选择了直接法和间接法来融合相机和惯性测量单元数据。实验是通过对我们实验室多年来收集的水下机器人数据集的所有包进行测试。所有数据集都是在线提供的。
14. DISCOMAN:用于室内里程计,制图和导航的室内场景数据集
标题:DISCOMAN: Dataset of Indoor SCenes for Odometry, Mapping and Navigation
作者:Pavel Kirsanov, Airat Gaskarov, Filipp Konokhov, Konstantin Sofiiuk, Anna Vorontsova, Igor Slinko, Dmitry Zhukov, Sergey Bykov, Olga Barinova, Anton Konushin
来源:IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS),2019
泡泡机器人
摘要描述:
我们提供了一个用于训练和基准化语义SLAM方法的新颖数据集,该数据集由200个长序列组成,每个序列包含3000-5000个数据帧。 ,我们对模拟简单的家用机器人运动的轨迹进行采样,然后沿这些轨迹渲染框架。每个数据帧包含:a)使用基于物理的渲染生成的RGB图像,b)模拟的深度测量,c)模拟的IMU与现有数据集索引,我们的数据集具有更广泛的用途,并且是针对SLAM映射组件的第一个大型基准测试。数据集分为从我们介绍了基于经典几何[1],[2]和最近基于学习[3]的SLAM算法,基准线映射方法[4],语义分割[ 5]和全景分割[6]的基准测试结果。用于复制我们的实验的数据集和源代码将在发布时公开提供。
评:可用于室内环境下slam仿真
15. 地面机器人的视觉辅助定位(vins on wheel)
标题:Vision-Aided Localization For Ground Robots
作者:Mingming Zhang, Yiming Chen and Mingyang Li
来源:IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS),2019
泡泡机器人
摘要介绍:
通过融合摄像机,IMU和车轮里程表的测量结果,提出了一种专门针对地面机器人设计的新颖的基于视觉的定位算法。本文的第一个贡献是,我们提出了一种新颖的算法,该算法可通过参数表示逼近地面机器人的运动流形,并通过IMU和车轮里程计测量执行姿态积分。其次,通过使用基于滑动窗口的估计器,提出了一种完整的定位算法。估计器是基于迭代优化设计的,可以融合来自多个传感器的测量结果,并与建议的歧管表示形式相融合。我们显示,基于各种现实世界的实验,所提出的算法在很大程度上优于基于视觉的最新定位算法,尤其是在大规模复杂环境中部署时。
评:可以看下作者是如何把轮速计融入至vio
16. GPS-denied环境下结合UWB-Vision方法的UAVS自动停泊
标题:Integrated UWB-Vision Approach for Autonomous Docking of UAVs in GPS-denied Environments
作者:Thien-Minh Nguyen ; Thien Hoang Nguyen ; Muqing Cao ; et. al
来源:ICRA 2019
泡泡机器人
主要贡献:
结合UWB测距和视觉移动测量,提出了一种基于递归最小二乘优化的相对定位方案,并证明了估计误差以指数形式收敛。
2)相较于以往着陆于固定台的方案,我们实现了与移动着陆台的协同对接,这让对接任务灵活性更强。
3)在着陆阶段提出了结合相对位置估计和测距的方法实现更精确的着陆,通过大量实验验证了方案在长达50米时的有效性。
摘要描述:
本文提出一种有效而且鲁棒的GPS辅助的视觉惯导里程计(GPS-VIO)系统,该系统使用低频的GPS测量数据融合相机IMU数据。为了执行传感器融合,需要进行时空传感器标定和传感器参考帧之间的转换初始化。本文提出一种在线标定的方法对于GPS-IMU之间的外参、时间偏移以及对GPS传感器噪声具有鲁棒性的参考帧初始化步骤。此外,在VIO参考帧中进行估计时,证明了GPS-VIO系统存在四个不可观测的方向,并提出对GPS参考帧进行状态转换以实现完全可观。我们在蒙特卡罗仿真环境中广泛评估了所提出的方法,该方法中我们研究了系统对不同级别的噪声和GPS信号损失的鲁棒性并且另外研究了初始化过程中所使用的超参数。最后,在大规模的真实实验中验证了所提出的系统。
17. 基于基准点的开源视觉-惯导运动捕捉系统
标题:An Open Source, Fiducial Based, Visual-Inertial Motion Capture System
作者:Michael Neunert ,Michael Bloesch,Jonas Buchli
来源:FUSION 2016
泡泡机器人
主要贡献:
本文提出了一种基于单目-惯导EKF-SLAM的轻量级运动估计系统,该系统使用了人工地标。这项工作通过使用6 DoF的地标的角点观察并改编相应的卡尔曼滤波器,紧耦合SLAM和基于基准点的定位。这允许更小的地图尺寸和更精简的估计。与已有的依赖6DoF基准点的现有方法相比,所提出的框架在单个估计器中处理视觉测量和惯导数据,这保证了一致的数据并避免预校准和再校准。
18. 改进:加入提示的二进制特征描述子用于视觉地点重识别
标题:Adding Cues to Binary Feature Descriptors for Visual Place Recognition
作者:Dominik Schlegel and Giorgio Grisetti
来源:The International Conference in Robotics and Automation(ICRA) 2019
泡泡机器人
摘要描述:
本文提出了一种将连续或有选择的提示嵌入用于视觉地点重识别的二进制描述子的方法。该嵌入方法将原来的描述子与编码提示的二进制字符串进行组合,并支持使用汉明距离作为度量。将该种方式增广的描述子应用于原有应用无需过多改进。
19. 用于鲁棒定位的高效的视觉上下文分类器(特征点新的描述方法)
标题:LandmarkBoost: Efficient Visual Context Classifiers for Robust Localization
作者:Marcin Dymczyk, Igor Gilitschenski, Juan Nieto, Simon Lynen, Bernhard Zeis, and Roland Siegwart
来源:International Conference on Intelligent Robots and Systems (IROS 2018)
泡泡机器人
摘要描述:
自动化系统的日益扩展,产生对可靠和有效的尺度位置检索算法的需求。当前使用的方法依赖依赖二进制代码的最近邻搜索来执行2D3D匹配并保证移动平台上的实时能力。然而,这些方法与地图的大小增加,视点或外观的变化以及环境中存在的视觉混叠相矛盾。
我们提出LandmarkBoost方法,与传统的2D-3D匹配方法分类,这种方法将搜索问题作为标志性的分类任务。
20. 港科大:基于通用优化的多传感器全局位姿估计框架(vins-fusion)
标题:A General Optimization-based Framework for GlobalPose Estimation with Multiple Sensors
作者:Tong Qin, Shaozu Cao, Jie Pan, and Shaojie Shen
来源:arXiv 2019
泡泡机器人
开源地址
21. OmniSLAM:多鱼眼相机的SLAM系统
文章:OmniSLAM: Omnidirectional Localization and Dense Mapping for Wide-baseline Multi-camera Systems
作者:Changhee Won, Hochang Seok , Zhaopeng Cui , Marc Pollefeys , and Jongwoo Lim
介绍链接
文章主要贡献:
主要贡献总结如下:
(i) 提出了一种轻量化和改进的网络鱼眼相机的深度估计。网络的精度、参数个数、运行时间等都比以前的版本有了很大的提高,使本系统更加实用。
(ii)通过将深度图集成到ROVO(鲁棒的视觉里程计)中,并增加回环闭合模块,构建了一个鲁棒的全向视觉SLAM系统。在具有挑战性的室内和大型室外环境中,估算的轨迹精度比以前的版本有所提高。
(iii)提出了一个完整的全方位定位和稠密地图系统,并在合成环境和真实的室内外环境中进行了大量的实验,结果表明我们的系统能够为各种场景生成重建良好的三维稠密地图
简评:作者利用轻量化模型进行深度估计,并将生成的深度图集成至ROVO中。
22. 基于ORB-SLAM2可持续保存地图的扩展方案
文章:Persistent Map Saving for Visual Localization for Autonomous Vehicles: An ORB-SLAM 2 Extension
作者:Felix Nobis∗, Odysseas Papanikolaou, Johannes Betz and Markus Lienkamp
增加了地图保存和先验地图定位功能
工作介绍:
该工程是支持ROS的,定位模式时需要提供一个map文件,其中包含ORB SLAM类的对象:map、MapPoint、Keyframe和KeyframeDatabase,以及每个关键帧的DBoW2 BoWVector和FeatureVector。因此,我们创建了一个SaveMap方法,它在SLAM进程结束时将此信息保存在二进制文件中。对于连续运行时,用户可以通过设置文件指定是否加载地图文件。如果用户决定使用保存的地图,则在系统启动时调用LoadMap方法,该方法加载保存的地图和KeyframeDatabase,并将系统设置为定位模式。定位模式是自动完成的,用户无需在线手动更改系统模式。SaveMap和LoadMap方法都集成在ORB-SLAM 2的系统类中,该类处理所有主要功能。
开源地址
23. ORB-SLAM2 / ORB-SLAM3 相关改进代码
介绍链接
本文总结了特征点法SLAM中目前效果最好的方法:ORB-SLAM2 / ORB-SLAM3 相关改进代码汇总,包括加速、多传感器融合、稠密建图、线特征、点线融合、导航、动态环境、多平台移植等。具体见下。
ORB-SLAM2 相关改进代码汇总:
论文发表于2017年的IEEE Transactions on Robotics,论文名称《ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras》
ORB-SLAM2 特点:
首个(2017年发布时)支持单目,双目和RGB-D相机的完整的开源SLAM方案,具有回环检测和重新定位的功能。
能够在CPU上进行实时工作,可以用于移动终端如 移动机器人、手机、无人机、汽车。
特征点法的巅峰之作,定位精度极高,可达厘米级。
能够实时计算出相机的位姿,并生成场景的稀疏三维重建地图。
代码非常整洁,包含很多实际应用中的技巧,非常实用。
支持仅定位模式,该模式适用于轻量级以及在地图已知情况下长期运行,此时不使用局部建图和回环检测的线程
[超详细中文注释版]
改进方法
ORBSLAM2_with_pointcloud_map,
高翔实现的添加稠密点云地图
[ORB-SLAM2_RGBD_DENSE_MAP]
(https://github.com/tiantiandabaojian/ORB-SLAM2_RGBD_DENSE_MAP),在高翔基础上添加了稠密闭环地图
[ORB-YGZ-SLAM]
(https://github.com/gaoxiang12/ORB-YGZ-SLAM),
使用SVO中直接法来跟踪代替耗时的特征点提取匹配,在保持同样精度的情况下,是原始ORB-SLAM2速度的3倍
[YGZ-stereo-inertial SLAM]
(https://github.com/gaoxiang12/ygz-stereo-inertial),
双目VIO版本,加入了LK光流和滑动窗口BA优化
[VI-ORB] https://github.com/jingpang/LearnVIORB
京胖实现的VI-ORB-SLAM2
[Fisheye-ORB-SLAM]
(https://github.com/lsyads/fisheye-ORB-SLAM),添加了支持鱼眼
[Save and load orb-slam2 maps]
(https://github.com/AlejandroSilvestri/osmap),添加保存和导入地图功能
[ORB_SLAM2 with map load/save function]
(https://github.com/Jiankai-Sun/ORB_SLAM2_Enhanced),添加保存和导入地图功能
[Viewer for maps from ORB-SLAM2 Osmap]
(https://github.com/AlejandroSilvestri/Osmap-viewer),
添加了地图可视化
[Add line feature based ORB-SLAM2]
(https://github.com/atlas-jj/ORB_Line_SLAM),添加了线特征
[RGBD-SLAM with Point and Line Features, developed based on ORB_SLAM2]
(https://github.com/maxee1900/RGBD-PL-SLAM),添加了点线融合
[Good Feature Selection for Least Squares Pose Optimization in VO/VSLAM]
(https://github.com/ivalab/gf_orb_slam2),使用了一种更好的特征选择方法
ORB_SLAM2_SSD_Semantic,
动态语义SLAM 目标检测+VSLAM+光流/多视角几何动态物体检测+octomap地图+目标数据库
[Tracking Enhanced ORB-SLAM2]
(https://github.com/Eralien/TE-ORB_SLAM2),
用YOLO v3的语义信息来增加跟踪性能
YOLO Dynamic ORB_SLAM,用YOLO来做动态环境的检测
多平台移植代码
[Windows version ORBSLAM2,Easy built by visual studio]
(https://github.com/phdsky/ORBSLAM24Windows),
Windows平台版本,可以用 visual studio轻松编译
[ORB-SLAM-Android, test on Sony Xperia Z]
(https://github.com/castoryan/ORB-SLAM-Android),
Android移植,在 Sony Xperia上测试
[ORBSLAM2 on Mac OSX]
(https://github.com/meiroo/ORBSLAM2-OSX),Mac OSX版本
[ROS interface for ORBSLAM2]
(https://github.com/ethz-asl/orb_slam_2_ros),添加ROS接口
ORB-SLAM3 相关代码
2020年07月开源, 论文《ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM》
ORB-SLAM3特点
支持视觉、视觉加惯导、混合地图的SLAM系统,可以在单目,双目和RGB-D相机上利用针孔或者鱼眼模型运行。
基于特征的紧耦合的VIO系统,仅依赖于最大后验估计(包括IMU初始化时)。因此不管是在大场景还是小场景,室内还是室外都能鲁棒实时的运行,精度上相比于上一版提升了2到5倍
根据新的重定位模块来构建的多地图系统,可以让系统在特征不是很好的场景中长期运行。
第一个能够在所有算法阶段重用所有先前信息的系统,可以在BA的时候使用相隔很远的共视关键帧。
https://arxiv.org/pdf/2007.11898.pdf
https://github.com/UZ-SLAMLab/ORB_SLAM3
ORB_SLAM3-RGBD-Inertial
增加了RGBD-IMU的运行模式和ROS接口,增加了单目IMU和双目IMU的ROS接口,替换了词典为二进制格式,加载速度更快。依据ORB_SLAM3重写了RGBD-IMU的ROS接口,避免出现队列拥塞,提供了Kinect for Azure的参数文件
————————————————
24. <实验测评>综合比较几种适用于无人机的单目惯性里程计算法
标题:A Benchmark Comparison of Monocular Visual-Inertial Odometry Algorithms for Flying Robots
作者:Jeffrey Delmerico and Davide Scaramuzza
来源:2018 IEEE International Conference on Robotics and Automation (ICRA), May 21-25, 2018, Brisbane, Australia
泡泡机器人
本文在不同硬件条件下(包括无人机最常见的单一计算平台的情况)评估了一系列开源VIO算法(MSCKF, OKVIS, ROVIO, VINS-Mono, SVO+MSF, SVO+GTSAM)。我们在EuRoC数据集上测试了各个算法的位姿估计精度、处理每一帧所用的时间以及CPU和内存的占用情况,该数据集包含无人机各种典型的6自由度飞行轨迹。我们展示了所有对比的数据,这可以为其他相关研究提供对比基准。
文章的视频已经公开在YouTube上
25. <综述>基于滤波和优化的视觉惯性里程计综述
标题:A review of visual inertial odometry from filtering and optimisation perspectives
作者:Jianjun Gui∗, Dongbing Gu, Sen Wang and Huosheng Hu
来源:Advanced Robotics, 2015
泡泡机器人描述添加链接描述
26. 室内slam数据集:Lifelong SLAM数据集与挑战赛
论文地址添加链接描述
数据集地址添加链接描述
比赛以及数据集介绍添加链接描述
2019赛况介绍
27. <各种数据集>最强 SLAM Datasets 合集
泡泡机器人添加链接描述
数据集介绍链接添加链接描述
28. <标定>利用直线和平面对应关系自动标定相机与三维激光雷达之间的外参
标题:Automatic Extrinsic Calibration of a Camera and a 3D LiDAR using Line and Plane Correspondences
作者:Lipu Zhou, Zimo Li, and Michael Kaess
来源:2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)
泡泡机器人添加链接描述
摘要:
本文中使用棋盘格标定板处理了相机与三维激光雷达之间的外参标定。与之前要求至少三个棋盘格标定板位置不同,我们的算法通过联合三维线和面对应关系将最少需要的棋盘格位置减少到1。
29. 间歇的GPS辅助VIO:在线初始化和标定
标题: Intermittent GPS-aided VIO: Online Initialization and Calibration
作者:Woosik Lee, Kevin Eckenhoff, Patrick Geneva, and Guoquan Huang
来源:2020 IEEE International Conference on Robotics and Automation (ICRA)
泡泡机器人描述添加链接描述
摘要描述:
本文提出一种有效而且鲁棒的GPS辅助的视觉惯导里程计(GPS-VIO)系统,该系统使用低频的GPS测量数据融合相机IMU数据。为了执行传感器融合,需要进行时空传感器标定和传感器参考帧之间的转换初始化。本文提出一种在线标定的方法对于GPS-IMU之间的外参、时间偏移以及对GPS传感器噪声具有鲁棒性的参考帧初始化步骤。此外,在VIO参考帧中进行估计时,证明了GPS-VIO系统存在四个不可观测的方向,并提出对GPS参考帧进行状态转换以实现完全可观。我们在蒙特卡罗仿真环境中广泛评估了所提出的方法,该方法中我们研究了系统对不同级别的噪声和GPS信号损失的鲁棒性并且另外研究了初始化过程中所使用的超参数。最后,在大规模的真实实验中验证了所提出的系统。
30.用于室内环境下的多传感器融合slam数据集
http://www.rawseeds.org/rs/datasets/view//6
31. SlamBench2:视觉SLAM的多目标头对头基准测试
摘要:
SLAM正在成为机器人和增强现实(AR)系统的关键组成部分。虽然大量的SLAM算法被提出,但是很少的努力花在统一这些算法的接口,或者对它们的能力进行整体比较上。这是一个问题,因为不同的SLAM应用程序可以有不同的功能和非功能需求。例如,基于手机的AR应用程序有着很紧的能耗预算,而无人机导航系统通常需要很高的精度。SlamBench2是一个基准框架,用于评估现有和未来的SLAM系统,包括开放源代码和封闭源代码,以及可扩展的数据集列表,同时使用可比较且明确指定的性能指标列表。支持现有的各种SLAM算法和数据集,例如ElasticFusion、InfiniTAM、ORB-SLAM2、OKVIS,并且整合新的算法和数据集是由框架直接而明确地指定的。SlamBench2是一个公开可用的软件框架,它代表了定量、可比较和可验证的实验研究的起点,以研究跨SLAM系统的权衡。
32. 港科大——双目视觉深度估计及3D地图构建工作
关于如何判断vins-mon运行失败,轨迹已经漂移,可以参考港科大工作:
VINS-Fusion with Cerebro
双目大视角鱼眼vins-fusion
开源工程
VINS-Fisheye的开发
文章中介绍了关于双目深度计算的部分以及开发过程,很有参考意义,并且代码中也将该部分独立了出来
基于深度学习的双目深度计算:
HKUST-Aerial-Robotics——MVDepthNet
使用样例,港科大高飞使用vins-mono和MVDepthNet进行三维环境障碍物地图精细重建
开源地址
更加详细的内容合并资源,港科大教学重复计划(无人驾驶飞机比赛)
很强大的无人机概率地图生成添加链接描述
该项目包含用于四旋翼快速飞行的强大且计算效率高的算法的集合:
相关文章:
【20年VIO梳理】
19-20年VIO 梳理 1. 开源代码介绍: DSM2. FMD Stereo SLAM:融合MVG和直接方法,实现准确,快速的双目SLAM3. 基于VINS-Mono开发的SPVIS4. 改进:一种基于光流的动态环境移动机器人定位方案5. PVIO:基于先验平面约束的高效…...
Java Object类详解
Object 是 java 类库中的一个特殊类,也是所有类的父类。也就是说,Java 允许把任何类型的对象赋给 Object 类型的变量。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类。因此,以下两个类表示的含…...
Unity 中忽略图片透明度的 Image 组件的修改版本
只需将此组件添加到画布中的空对象即可。请注意,仅支持简单 图像类型。 using System.Collections.Generic; using UnityEngine; using UnityEngine.Sprites; using UnityEngine.UI; #if UNITY_2017_4 || UNITY_2018_2_OR_NEWER using UnityEngine.U2D; #endif#if U…...
hibernate源码(1)--- schema创建
sessionFactory 配置项: hibernate的核心是sessionFactory,那我们看看如何构建session Factory。 参考官网: plugins {id("java") } group "com.atai.hibernatespy" version "1.0-SNAPSHOT" repositories…...
数学与经济管理
数学与经济管理(2-4分) 章节概述 最小生成树问题 答案:23 讲解地址:74-最小生成树问题_哔哩哔哩_bilibili 最短路径问题 答案:81 讲解地址:75-最短路径问题_哔哩哔哩_bilibili 网络与最大流量问题 真题 讲解…...
自动化测试系列 —— UI自动化测试
UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG。了解用户将如何在用户和网站之间进行交互以执行 UI 测试至关重要,通过执行 UI 测试…...
眨个眼就学会了PixiJS
本文简介 带尬猴,我是德育处主任 当今的Web开发中,图形和动画已经成为了吸引用户注意力的重要手段之一。而 Pixi.js 作为一款高效、易用的2D渲染引擎,已经成为了许多开发者的首选(我吹的)。本文将为工友们介绍PixiJS的…...
WORD中的表格内容回车行距过大无法调整行距
word插入表格,编辑内容,换行遇到如下问题: 回车后行距过大,无法调整行距。 解决方法(并行): 方法1:选中要调整的内容,菜单路径:“编辑-清除-格式” 方法2&am…...
MySQL 高级函数整理
目录 MySQL 高级函数VERSIONIFCASE参考文章 MySQL 高级函数 函数描述BIN返回数字的二进制表示BINARY将值转换为二进制字符串CASE遍历条件并在满足第一个条件时返回一个值CAST将(任何类型的)值转换为指定的数据类型COALESCE返回列表中的第一个非空值CONN…...
UG\NX二次开发 连接曲线、连结曲线 UF_CURVE_auto_join_curves
文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介 UG\NX二次开发 连接曲线、连结曲线 UF_CURVE_auto_join_curves 效果 代码 #include "me.hpp" extern DllExport void ufusr(char* param, int* returnC…...
python爬虫入门(四)爬取猫眼电影排行(使用requests库和正则表达式)
本例中,利用 requests 库和正则表达式来抓取猫眼电影 TOP100 的相关内容。 1.目标 提取出猫眼电影 TOP100 的电影名称、时间、评分、图片等信息,提取的站点 URL 为 http://maoyan.com/board/4,提取的结果会以文件形式保存下来。 2.抓取分析…...
Mybatis-Plus CRUD
💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Mybatis-Plus CRUD 通用 Service CRUD 封装 IService 接口,进一步封装 CRUD 采用 get 查询、remove 删除 、list 查询集合、page 分页的前缀命名方式区分 …...
【强化学习】08——规划与学习(采样方法|决策时规划)
文章目录 优先级采样Example1 Prioritized Sweepingon Mazes局限性及改进 期望更新和采样更新不同分支因子下的表现 轨迹采样总结实时动态规划Example2 racetrack 决策时规划启发式搜索Rollout算法蒙特卡洛树搜索 参考 先做个简单的笔记整理,以后有时间再补上细节 …...
(链表) 25. K 个一组翻转链表 ——【Leetcode每日一题】
❓ 25. K 个一组翻转链表 难度:困难 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保…...
VisualStudio[WPF/.NET]基于CommunityToolkit.Mvvm架构开发
一、创建 "WPF应用程序" 新项目 项目模板选择如下: 暂时随机填一个目标框架,待会改: 二、修改“目标框架” 双击“解决方案资源管理器”中<项目>CU-APP, 打开<项目工程文件>CU-APP.csproj, 修改目标框架TargetFramew…...
深度学习_5_模型拟合_梯度下降原理
需求: 想要找到一条直线,能更好的拟合这一些点 如何确定上述直线就是最优解呢? 由计算机算出所有点与我们拟合直线的误差,常见的是均方误差 例如:P1与直线之间的误差为e1 将P1坐标带入直线并求误差得: 推广到所有点&a…...
大模型时代,AI如何成为数实融合的驱动力?
10月25日,百度APP、百家号联合中兴通讯举办的“时代的增量“主题沙龙第二期在北京顺利召开。本期沙龙围绕“数实融合新视角”邀请学界、业界、媒体从业者等领域专家出席,以产学研相结合的视角深入探讨数实融合的最新技术趋势,并围绕数实融合在…...
MS COCO数据集的评价标准以及不同指标的选择推荐(AP、mAP、MS COCO、AR、@、0.5、0.75、1、目标检测、评价指标)
目标检测模型性能衡量指标、MS COCO 数据集的评价标准以及不同指标的选择推荐 0. 引言 0.1 COCO 数据集评价指标 目标检测模型通过 pycocotools 在验证集上会得到 COCO 的评价列表,具体参数的含义是什么呢? 0.2 目标检测领域常用的公开数据集 PASCAL …...
css实现鼠标多样化
cursor pointer: 手型default: 箭头text: 文本输入光标move: …...
21.2 Python 使用Scapy实现端口探测
Scapy 是一款使用纯Python编写的跨平台网络数据包操控工具,它能够处理和嗅探各种网络数据包。能够很容易的创建,发送,捕获,分析和操作网络数据包,包括TCP,UDP,ICMP等协议,此外它还提…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
Unity VR/MR开发-VR开发与传统3D开发的差异
视频讲解链接:【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...
【PX4飞控】mavros gps相关话题分析,经纬度海拔获取方法,卫星数锁定状态获取方法
使用 ROS1-Noetic 和 mavros v1.20.1, 携带经纬度海拔的话题主要有三个: /mavros/global_position/raw/fix/mavros/gpsstatus/gps1/raw/mavros/global_position/global 查看 mavros 源码,来分析他们的发布过程。发现前两个话题都对应了同一…...
篇章一 论坛系统——前置知识
目录 1.软件开发 1.1 软件的生命周期 1.2 面向对象 1.3 CS、BS架构 1.CS架构编辑 2.BS架构 1.4 软件需求 1.需求分类 2.需求获取 1.5 需求分析 1. 工作内容 1.6 面向对象分析 1.OOA的任务 2.统一建模语言UML 3. 用例模型 3.1 用例图的元素 3.2 建立用例模型 …...
Linux系统:进程间通信-匿名与命名管道
本节重点 匿名管道的概念与原理匿名管道的创建命名管道的概念与原理命名管道的创建两者的差异与联系命名管道实现EchoServer 一、管道 管道(Pipe)是一种进程间通信(IPC, Inter-Process Communication)机制,用于在不…...
