2024年最新SLAM 论文阅读和分类整理_slam方面论文应该怎么看(1),2024年最新95%C C++开发者已收藏的十大开源库

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

VIO 初始化和外参数标定

该部分主要是 VIO系统中初始参数的确定,如相机尺度,系统初始速度,重力方向,imu bias,甚至相机和 imu 之间的外参数等等。

首先是闭式求解的方法,三篇论文一脉相承,Martinelli 作为二作和一作。

  1. 2011 年 ICRA ,Closed-Form Solution for Absolute Scale Velocity Determination Combining Inertial Measurements and a Single Feature Correspondence. 闭式求解相机尺度,只需要三帧和一个特征点。
  2. 2014 年 IJCV,closed-form solution of visual-inertial structure from motion,也是闭式求解,但是求解过程中忽略了 gyro bias 和 acc bias 的影响,因此,该方法不太实用,在实际系统中也没被采用过(17年该作者作为二作的一篇RAL说的)。
  3. 2017 年 RAL,Simultaneous State Initialization and Gyroscope Bias Calibration in Visual Inertial Aided Navigation,作者对上篇论文所述方法受 bias 的影响进行了分析,发现 acc bias 对系统影响不那么大,但是 gyro bias 影响较大,所以在 14 年论文的基础上提出了加入了标定 gyro bias 的方法。
  4. 2021 年 RAL,Revisiting visual-inertial structure from motion for odometry and SLAM initialization. Snap 公司做的一个工作,通过消元,将闭式解的求解速度提高了很多。

优化迭代求解的方法

  1. 2017 年 RAL,Visual-Inertial Monocular SLAM with Map Reuse. ORBSLAM VIO 论文,主要是利用 IMU 预积分和单目 ORBSLAM 估计的姿态之间构建约束,从而迭代求解 IMU 初始状态所有参数(甚至包括acc bias),不包括外参数的标定。
  2. 2017 年 TASE,Monocular Visual–Inertial State Estimation With Online Initialization and Camera–IMU Extrinsic Calibration. 沈老师组论文,sfm 求解相机姿态和 gyro 积分构建rotation约束,从而求解相机imu之间的旋转外参数,然后固定rotation,求解其他参数,如重力方向,速度,外参数平移,特征深度等。论文中直接构建一个最小二乘对上述参数进行优化求解。
  3. 2017 年 IROS,Robust Initialization of Monocular Visual-Inertial Estimation on Aerial Robots. 这篇大家比较熟悉,相对于上篇直接丢到误差函数进行优化求解的方法,沈老师他们借鉴了 ORBSLAM VIO 的做法,分步求解gyro bias, 尺度,速度,重力方向等参数。这篇论文和 ORBSLAM VIO 不同之处在于,它在初始化过程中不考虑 acc bias 的影响,因为通常 acc bias 相对于重力加速度不太可观,作者在论文中用实验表明,初始化过程中,只有当系统有足够的旋转时(超过30度),acc bias 才能收敛的比较好。反过来,如果初始化过程中忽略 acc bias, 通常 acc bias 对单目相机尺度的估计影响是在一个可接受范围内。
  4. 2018 年 ICRA,Online Initialization and Automatic Camera-IMU Extrinsic Calibration for Monocular Visual-Inertial SLAM. 求解VIO初始化过程中所有的参数,该论文在 ORBSLAM VIO 的框架下加入了外参数的标定。外参数旋转和平移的计算则参考沈老师的他们的做法。
  5. 2018年 ISMAR, Visual-inertial slam initialization: a general linear formulation and a gravity-observing non-linear optimization
  6. 2017 年 IROS, Inertial-Based Scale Estimation for Structure from Motion on Mobile Devices. 上面几篇都是基于 IMU 预积分的, 把短时间内的加速度什么的积分起来, 然后和视觉算的姿态构建误差, 优化出那些变量. 这篇论文不一样, 它是将相机姿态转换成角速度和加速度,和 imu 测量值去构建误差. 并且提出了频域对齐的方法, 值得一读.
时间戳标定
  1. 2018 年 ECCV, Modeling Varying Camera-IMU Time Offset in Optimization-Based Visual-Inertial Odometry 沈老师组博士 yongen lin 的论文. 基于VINS-Mono的论文. 该论文认为imu 和 cam之间不是时间同步的, 时间延迟

t

d

t_d

td​ 也不是常数, 而是一个时变的变量. 可以认为作者把这个时间延迟当做了一个 imu 的 bias, 每次迭代优化出时间

t

d

t_d

td​, 都会将 camera 的姿态进行补偿, 从而把时间因此耦合到误差项进行优化. 这是在腾讯 AI Lab 的工作, 代码没有开源.
2. 2018 年 IROS, Online Temporal Calibration for Monocular Visual-Inertial Systems. 沈老师他们最新 VINS-Mono 代码里已经集成了这个时间戳标定的代码, 算法假设 imu 和 cam 之间的延迟是常数的, 和以往将相机姿态利用速度和角速度乘以时间差进行补偿不同, 沈老师他们设计的非常巧妙 (比上一篇感觉更优雅). 将 imu 和相机之间的时间延迟, 变成图像平面特征检测的位置的延迟, 这样就简化了整个误差函数.
3. 2020 年 TRO,Real-Time Temporal and Rotational Calibration of Heterogeneous Sensors Using Motion Correlation Analysis,沈老师组论文,利用协相关滤波找到 IMU 测量的角速度(做了个平均滤波)和其他传感器估计的角速度(相邻两帧的旋转矩阵除以时间间隔)之间的时间延迟。方法虽不是特别创新,但做的深入且成系统,值得一读。

自监督在线标定
  1. 2013 年 IVS,Self-supervised Calibration for Robotic Systems. 标定工具 Kalibr 对应的论文。这篇论文非常值得一读,将传感器内外参数和机器人状态一起在线估计,并详细推导和描述了什么时候用测量数据自动更新估计的传感器参数。论文从最小二乘出发,描述了高斯牛顿估计所有参数的过程,并指出了数值计算不稳定会影响信息矩阵可观性的解决方法(即对特征值小于一定阈值的维度不进行更新)。最后提出了使用信息熵来判断新的测量数据是否用来更新内外参数的算法流程(直观理解:判断在新数据条件下待估计参数的协方差的行列式相比之前数据条件下待估计参数的协方差的行列式是否下降了一定阈值)。这篇论文中提到的可观性,信息矩阵,以及他的在线更新方法都很值得一读。同时,作者在ETH的硕士论文以及truncated_svd代码都在github上开放了。
  2. 2017 年 ICRA, Visual-inertial Self-calibration on Informative Motion Segments. 李名扬二作,思路和上篇差不错,也是判断信息熵协方差之类的决定参数是否更新。2019 年 IEEE Sensors Journal, Observability-aware Self-Calibration of Visual and Inertial Sensors for Ego-Motion Estimation. 他们把 17 年的论文进行了扩充。另外,一作小哥已经 ETH 博士毕业,也可以读读他的博士论文 thesis.pdf
可观性,一致性,不变性
  1. 2005 年 IJRR, John J. Leonard ,Exactly Sparse Extended Information Filters forFeature-Based SLAM. 大佬们的IJRR, 这篇文章虽然跟可观性啥的没关系,但是他讲了信息矩阵的 fill-in 问题,能帮你梳理信息矩阵,协方差矩阵,marginlization 之间的关系。
  2. 2012 年 ICRA, Consistency Analysis for Sliding-Window Visual Odometry. 其实sliding window VO早期的论文应该是2006年G.Sibley,但是个人感觉没Dong-Si 的论文写得好。Dong-Si 12 年的这篇论文把滑动窗口BA中雅克比不一致导致的可观性消失讲的清晰易懂,很容易就理解了FEJ的来头。八卦一下,Dong-Si 的个人主页,工作简历可以看出12年毕业后就没做 SLAM 了,搞数据库SQL啥的去了,联想到2012年在TRO上首次提出预积分的作者也做玩具去了,估计那会SLAM不好找工作吧。
  3. 2006 年,Observability and fisher information matrix in nonlinear regression. 说了什么是可观不可观, 以及和信息矩阵的联系。不是从滤波那个状态方程去推导的。
  4. 2012 年, msckf 那个实验室的技术报告,Observability-constrained Vision-aided Inertial Navigation. 之前的操作是 FEJ, 带来的问题是线性化点的误差比较大,这篇论文直接对可观性矩阵进行强制零空间约束,也就是强制使得传递矩阵的零空间维数不会减小。论文中对这个约束对雅克比矩阵的影响进行了推导,得到了一个闭式解,宾大的开源代码 mskcf_mono 对这个进行了实现。这篇论文另外一个值得学习的地方是在附录中对 IMU 的 propagation 的误差状态转移矩阵

Φ

\boldsymbol{\Phi}

Φ 进行了详细的推导。当然,Mingyang Li 的技术报告 也对零空间,状态转移矩阵进行过详细推导。仔细阅读这两个论文,就能把套路摸清。当然 VIO 的可观性论文很多, 不过都是明尼苏达那实验室出来的,比如还有这个 Unobservable Directions of VINS Under Special Motions 也可以看看。
5. 2016 年 arxv,Barrau,An EKF-SLAM algorithm with consistency properties. 不变性理论:当给定数据和系统,作者认为系统每个时刻的协方差(不确定度)应该就确定了,和我们估计的各时刻状态量没关系。上面那些认为线性化点不同而造成协方差估计出现问题的论文并不本质,因此作者提出了不变性 EKF. 这篇论文从 2d ekf 这个简单的例子进行阐述,对理解该算法很有帮助,该算法确实找到了问题本质。作者的其他论文都较理论,下面那篇是他的 15 年的博士论文,感兴趣的可以继续深入。
6. 2015 年 phd thesis, Non-linear state error based extended Kalman filters with applications to navigation. 作者Axel Barrau 和他导师一直沿着 invariant ekf 的路在走,发了很多关于不变性的文章。
7. 2018 年 IROS,Invariant Smoothing on Lie Groups. Barrau 的小师弟把不变性做从 ekf 扩展到了优化的框架。
8. 2018 年 Phd Thesis,Improving Visual-Inertial Navigation Using Stationary Environmental Magnetic Disturbances. 该作者也去过Cremers组,发了一篇鱼眼 LSDSLAM。不过博士论文跟那个没关系,他的第七章对一致性的几种方法(EFJ,OC-EKF, condition, robocent, invariant)进行了大致算法分类和梳理,并在自己系统中采用了 invariant ekf 。

其他
  1. 2018 年 IROS, zhichao zhang, A Tutorial on Quantitative Trajectory Evaluation for Visual(-Inertial) Odometry. 轨迹评测的论文,Scaramuzza 组做的工作都非常扎实,细致。
  2. 2018 年 RAL, zhichao zhang, On the Comparison of Gauge Freedom Handling in Optimization-based Visual-Inertial State Estimation . VIO 有四个不可观的自由度,优化的时候需要特别处理这四个自由度,通常有三种方法,是固定这四个自由度,还是给这四个自由度加先验,还是像 vins-mono 那样任意优化这四个自由度最后reset? 这篇论文就这个问题进行了详细讨论。结论是三种方式精度都差不多,但是任意优化然后reset的操作会收敛的快一点。不过任意优化的不好之处在于他没有一个参考系,信息矩阵的逆得到的协方差没有太多的意义,作者参考引用14中的方法给出了解决方案。最后,作者给出了协方差的变换那部分的代码
  3. 2018年 ECCV, Fast and Accurate Camera Covariance Computation for Large 3D Reconstruction。如何从BundleAdjustment里面快速恢复协方差,同时这个论文给了一个零空间的计算方法。这个零空间和dso代码中的计算方法一致,其实也是和前面 mingyang li 他们的算法是一致的,只不过给出的另一个视角下零空间原来是这么来的。
  4. 2013 年 BMVC, Steven Lovegrove ,Spline Fusion: A continuous-timerepresentation for visual-inertial fusion withapplication to rolling shutter cameras. 这篇论文三作是sliding widow filter 作者 Sibley, 用样条差值的方法来解决 rolling shutter 的问题,另外样条插值的方法也用到了 imu 数据的仿真中,给定特定时刻的姿态,他能从姿态插值生成线速度,加速度等数据。
  5. 2018 年 IROS, Arno Solin, VIO 数据集,用 iPhone 等设备采集的,对标 ARkit, ARcore, ADVIO: An Authentic Dataset for Visual-Inertial Odometry. 除了数据集贡献,作者也写过 VIO 论文, 18 年的 wacv 论文,PIVO: Probabilistic Inertial-Visual Odometry for Occlusion-Robust Navigation,17 年的 Inertial Odometry on Handheld Smartphones.
  6. 2017 年,msckf 组,Edge-based visual-inertial odometry. (占坑)
  7. 2010 年,Zero-Velocity Detection—An Algorithm Evaluation. 2013 年 Tutorial: Implementing a Pedestrian Tracker Using Inertial Sensors.
  8. 2013 年,Computing Velocities and Accelerations from a Pose Time Sequence in Three-dimensional Space. 弗莱堡大学的一个技术报告,从 一系列 pose 生成速度加速度。

VO 前端

光照处理
  1. 2017 年 ICRA, Illumination Change Robustness in Direct Visual SLAM ETH的论文,针对直接法对光照不鲁棒的问题,调研了十来种处理方法,有些参考意义。
  2. 2017 年 RA-L, P. Bergmann, Online Photometric Calibration of Auto Exposure Video for Realtime Visual Odometry and SLAM. Cremers 组的工作,对 DSO 光度标定算法进行了加强,变成了在线光度标定,并用于光流跟踪,看上他们的光流对光照变化比较适应,效果不错。
  3. 2017 年 ICRA,Zichao Zhang, Active Exposure Control for Robust Visual Odometry in HDR Environments 光照相应模型讲的比较清楚,也在直接法的 VO 里应用了。
特征匹配
  1. 2018 年 IROS, Geometric-based Line Segment Tracking for HDR Stereo Sequences. PL-SLAM 作者做的一个关于双目序列图像的直线匹配工作. 传统的直线匹配都是提取描述子之类的, 但是对于序列图像, 图像之间的运动变化比较小, 可以利用直线在图像里的几何性质来完成匹配(如直线在图像里的角度). 作者提出的方法不依赖图像特征, 匹配速度也比 LBD 有所提高. 直线长度差不多, 直线角度差不错, 对于直线中心点也加了一个极线条件. 将这些条件组合在一起构建了一个误差函数, 进行L1优化, 每个直线只找到一个对应的匹配项,使得匹配误差最小.

VO 后端

  1. 斯坦福大学的凸优化,Convex Optimization
  2. 2009 年,SBA: A Software Package for Generic Sparse Bundle Adjustment. g2o 里的 LM 算法流程参考的就是这篇论文的实现方法,老的经典论文还是值得反复读。
  3. PCG代码实现参考资料:1. 2018 年 master thesis,Efficient Optimization For Robust Bundle Adjustment. TUM 的硕士论文,里面有 PCG 等算法的伪代码流程。2. The Preconditioned Conjugate Gradient Method 这是一个课程的note, 伪代码流程非常的清晰,如果想自己实现代码,可以照着这个复现。对应的在网上找了别人写的 PCG 函数,点这里
  4. 2009 年,A Brief Introduction to The Conjugate Gradient Method. 如果你对 CG 方法原理不是很熟,可以看看这个 8 页的pdf, 就能该方法的思想和出发点了解个大概。
  5. 1994 年, An Introduction to the Conjugate Gradient Method Without the Agonizing Pain. 当然如果你想进一步知道 CG 和 PCG,这篇白话就非常值得一读。

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

%以上C C++开发知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 高翔SLAM代码是指由高翔教授及其团队开发的用于实时定位与建图的代码SLAM即Simultaneous Localization and Mapping,即同时定位与建图。这个提供了一套完整的算法和工具,用于将传感器数据转化为地图,并实时定位机器人或无人机在该地图上的位置。 该代码主要包含了两个主要模块:前端和后端。前端模块主要负责感知和数据关联,负责提取传感器数据(如相机、激光雷达等)并进行数据关联,生成当前机器人所在位置的估计值。后端模块主要负责优化和建图,负责根据前端生成的估计值进行优化,建立准确的地图。 高翔SLAM代码采用了一些先进的技术和算法,例如bundle adjustment(束调整)、loop closure detection(闭环检测)等。束调整算法可以对前端生成的估计值进行优化,提高定位的准确性;闭环检测算法可以检测到机器人经过相同场景时的视觉特征,从而解决传感器误差累积导致的定位漂移问题。 此外,该代码还提供了一些可视化工具,用于显示实时的机器人轨迹和地图,方便用户实时监控机器人的移动路径和地图的建立过程。 总之,高翔SLAM代码是一套用于实时定位与建图的代码,可以帮助开发者实现精准的定位和地图建立,是机器人导航和无人机航行的重要工具。 ### 回答2: gaoxiang slam代码是一个基于李言论的SLAM(即同时定位与地图构建)开源框架,由高翔先生开发。这个代码提供了一套完整的SLAM算法实现,包括图优化、地图构建、数据输入输出等功能。它以C++语言为基础,借助了很多第三方,如Eigen、Sophus、G2O等,可在Linux操作系统下使用。 gaoxiang slam代码的实现思路源自于计算几何、机器人学和图像处理等领域的研究成果。它通过对传感器数据的处理,使用滤波器或优化算法,实现同时定位与地图构建。代码中包含传感器数据的读取和处理部分,如图像采集、特征提取、相机标定等;同时也包含了实时运动估计、回环检测和地图构建等算法。 使用gaoxiang slam代码需要先了解SLAM算法的基本原理和相关的数学知识。然后按照代码的文档指引,配置环境,下载依赖,并编译运行代码。在代码运行过程中,可以通过修改参数来优化算法,以达到更好的定位和地图重建效果。 gaoxiang slam代码不仅提供了实现SLAM算法所需的基本功能,还提供了一些实例数据和可视化工具,方便使用者进行验证和调试。此外,它还有详细的文档和教程,使用户能够更好地理解和使用代码。 总的来说,gaoxiang slam代码是一个功能齐全、易于使用和扩展的SLAM开源框架,它为实现同时定位与地图构建提供了一个基础平台,有助于推动SLAM技术的研究和应用。 ### 回答3: gaoxiang slam是一个开源的视觉SLAM(Simultaneous Localization and Mapping),用于在无人机、机器人或其他移动设备上实现实时的定位和地图构建。 gaoxiang slam的代码主要基于C++编写,并采用了一些流行的计算机视觉和数学,如OpenCV、g2o和Sophus。其中,OpenCV用于处理图像和特征提取,g2o用于图优化,Sophus用于处理3D几何变换。 gaoxiang slam的代码包含几个主要模块,如图像读取、特征提取与匹配、前端、后端、回环检测等。特征提取与匹配模块通过检测特征点(如FAST、ORB等)和描述符(如SIFT、ORB等)来获取图像信息,以便在后续的地图构建和定位中使用。前端模块将特征点和特征描述符输入到PnP(Perspective-n-Point)算法中,通过解决3D-2D点匹配问题来估计相机的位姿。后端模块使用图优化方法(如基于g2o的非线性最小二乘优化)来优化位姿估计的精度,同时还可以进行地图点优化和闭环检测,以提高定位和地图的准确性。 gaoxiang slam的代码结构清晰,易于理解和扩展。其使用了现代C++编程风格,包含大量注释和文档,方便用户学习和使用。此外,gaoxiang slam还提供了一些示例程序和数据集供用户测试和实践,可以在多个平台上运行,如Ubuntu、Windows和MacOS。 总而言之,gaoxiang slam是一个功能强大、易用且开放源代码的视觉SLAM,适用于学术研究、工业应用和个人项目。使用gaoxiang slam的代码,我们可以实现实时的定位和地图构建,为移动设备的智能导航和环境感知提供强大的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值