- 博客(586)
- 资源 (16)
- 收藏
- 关注

原创 ORB-SLAM2中关键知识点理解( 地图点、关键帧、图结构)
0.1. ORB SLAM2的总体框架是怎样的?下图是论文里的原图,ORB SLAM2一共有三个线程,分别是Tracking,Local Mapping和Loop Closing,其中Tracking是负责提取关键点进行帧间匹配,并且初选关键帧,Loop Mapping是进行关键帧筛选和地图点剔除,同事进行一个局部优化,Loop Closing主要是进行回环检测。2. ORB SLAM2是怎样完成初始化的?在ORB SLAM2进行跟踪前,需要先进行初始化,初始化包括相机初始帧位姿,新建地图,新建关
2022-05-01 01:23:41
4996

原创 SVO(SVO: fast semi-direct monocular visual odometry)
SVO(SVO: fast semi-direct monocular visual odometry)翻译文章目录SVO(SVO: fast semi-direct monocular visual odometry)翻译1、介绍2、系统概述3、符号4、运动估计4.1、 基于稀疏模型的图像对齐4.2、 通过特征对齐松弛4.3、 姿态和结构优化4.4、 讨论5、建图6、 实施细节7、实验结果8、结论1、介绍摘要——半直接法消除了运动估计中昂贵的特征提取和匹配技术的需要,直接在像素级上操作,做到了在高帧
2021-11-23 08:42:20
5285

原创 ORB-SLAM2代码框架梳理与详细解析(共11章)
ORB-SLAM2代码详解文章目录ORB-SLAM2代码详解1. ORB-SLAM2代码详解01_ORB-SLAM2代码运行流程1 运行官方Demo1.2. 阅读代码之前你应该知道的事情1.2.1 变量命名规则1.3 理解多线程1.3.1 为什么要使用多线程?1.3.2 多线程中的锁1.4 SLAM主类`System`1.4.1 System`类是ORB-SLAM2系统的主类,先分析其主要的成员函数和成员变量:1.4.2 构造函数1.4.3 跟踪函数2. ORB-SLAM2代码详解02_特征点提取器ORB
2021-09-23 22:34:50
7525
1
原创 【SLAM】中ZUPT的原理、名称由来及作用详解
ZUPT通过利用静止阶段的零速度观测,有效校正惯性导航系统的累积误差,是提升SLAM定位精度的关键技术之一。其名称直接体现了核心思想,作用则集中在误差抑制与多传感器融合的鲁棒性增强。
2025-02-11 16:35:23
248
原创 [MOUNT: Learning 6DoF Motion Prediction Based on Uncertainty Estimation for Delayed AR Rendering]
MOUNT: Learning 6DoF Motion Prediction Based on Uncertainty Estimation for Delayed AR Rendering
2025-01-21 13:16:25
137
原创 git系列之revert回滚
1.Git使用revert回滚已提交的commit在git使用中如果提交错误的代码至远程服务器,可以使用gitrevert命令回滚单次commit并且不影响其他commit。回滚最新一次的提交记录:gitrevertHEAD回滚前一次的提交记录:gitrevertHEAD^对历史上的commit回滚:gitrevert回滚历史commit很容易产生文件冲突,需要做好冲突处理。使用SourceTree进行commitrevert在准备revert的commit上右
2025-01-17 20:34:06
2225
原创 【OV】MSCKF与SLAMupdate更新解读
利用多个相机观测到的特征点,通过优化计算得到当前状态的最优估计。它可以在不使用地图的情况下实现单目视觉里程计的功能。算法实现了特征点管理、相机位姿估计、特征点三角化和优化、测量矩阵构建和状态更新等主要步骤。小姐:零空间投影的主要目的是:消除冗余信息,保证数值稳定性,满足约束条件,提高整个系统的性能和可靠性,特别是在多状态扩展卡尔曼滤波(MSCKF)等复杂优化场景中。
2025-01-07 17:57:31
630
原创 【OV】基于滑窗的残差构建(包含投影误差),目标函数构造,优化滑动窗口中的状态变量(如位姿、速度等)。)舒尔补方法实现SchurVINS::Solve3
原本的优化问题中需要优化的变量大幅减少,使得优化问题从高维变为低维。同时,计算过程也更加稀疏化,便于数值优化库(如 Ceres Solver)高效求解。(Schur Complement Method)完成的,该方法用于有效地消除系统中某些变量(如特征点的三维坐标),从而减少计算复杂度并优化求解效率。总之,代码中通过舒尔补方法避免了对特征点的直接优化,大幅降低了计算复杂度,且保留了状态估计的准确性。(特征点变量的增量),使用舒尔补方法得到关于。最终,通过等效赫塞矩阵和梯度,调用。通过舒尔补消去特征点。
2025-01-03 16:46:02
1050
原创 【OV】VINS协方差矩阵维护:描述状态的不确定性及各状态变量之间的相关性
协方差矩阵的维度变化:新增状态的维度与原状态向量保持一致。初始化假设:新增状态的协方差与现有状态通过传递模型或初始化值关联。数值稳定性:使用与原状态一致的协方差值作为新增部分的初值,避免数值不稳定。这一过程确保了在扩展状态的同时,系统的不确定性能够正确传播并保持与观测模型一致。这段代码是C++语言编写的,属于一个名为SchurVINS的类的成员函数。这个函数的目的是将一个新的状态(由表示)添加到当前的状态估计中,并且更新状态协方差矩阵。
2025-01-03 14:52:29
1063
3
原创 【SLAM】重投影小结:直接法立体视觉系统特征深度恢复
计算极线:函数首先计算参考特征在当前帧中的极线起点和终点,这是通过将参考特征的三维坐标通过相机运动变换到当前帧,并根据最小和最大深度的倒数投影到图像平面上得到的。计算仿射变换矩阵:接着计算一个仿射变换矩阵,用于将参考特征的图像区域变换到当前帧的图像尺度和方向。特征预筛选:如果特征是边缘特征(edgelet),并且开启了边缘特征筛选选项,函数会检查特征的方向是否与极线方向一致,如果不一致,则拒绝匹配。匹配准备:确定最佳的搜索级别,并使用仿射变换矩阵对参考特征的图像块进行变换。直接搜索。
2025-01-02 18:10:37
782
原创 【MVS】极线约束
这段代码通过计算点到极线的距离和检查点是否在极线的范围内,来验证两个点是否满足极线约束。这是立体视觉中用于匹配点对的一个重要步骤。
2024-12-27 14:57:55
572
原创 【XR】系统延时分析
P1、P2、P3的差异主要由硬件延迟、预测模型误差、数据处理时间和系统设计限制导致。提高Predictor的精度,减少P1到P2的误差。优化LSW模块的执行效率,缩短P2到P3的延迟。改善PC与FPGA的时钟同步,降低整体系统波动范围。P2P latency 是由于传感器噪声、预测模型不完善、时间同步误差、计算资源不足以及数据频率差异引起的预测时间偏差。通过改进预测模型、优化硬件性能、增强时间同步等措施,可以有效降低这种延迟,提升系统的实时性和精度。
2024-12-26 12:06:06
777
原创 【XR】ATW
异步时间扭曲(Asynchronous Timewarp,简称ATW)是一种在虚拟现实(VR)技术中使用的算法,它通过生成中间帧来减少因帧率不足导致的抖动和延迟,从而提高用户体验。在执行中,由于第一次垂直同步时Frame N的渲染尚未完成,此时会调用经由前一帧渲染的ATW帧进行插入,而第二次时钟同步时Frame N已完成渲染,直接扫描输出,在这种情况下,一倍的渲染对应两倍的垂直同步,帧率可以在低渲染计算下得以保持。这能确保在系统不能够及时完成新一帧完整画面的渲染时,头显内依然显示最新的画面。
2024-12-23 13:18:05
376
原创 【XR】Vsync,全称为Vertical Synchronization(垂直同步)
Vsync,全称为Vertical Synchronization(垂直同步),是一种在计算机图形学中用于协调显示器刷新率和图形处理单元(GPU)输出的技术。它的主要目的是同步GPU渲染帧的速度与显示器刷新的速度,以避免图像撕裂(tearing)现象。
2024-12-18 10:30:21
467
原创 【XR】静态初始化与动态初始化(MACKF与VINS的初始化特点)
静态初始化依赖于设备保持静止不动一段时间,通过分析IMU的加速度和角速度来估计重力方向与尺度,并从视觉数据中恢复初始状态(如相机到IMU的姿态与速度)。动态初始化允许设备在运动中完成初始化,通常通过视觉几何约束(如三角化或PnP)结合IMU数据进行优化,推断初始状态参数。
2024-12-11 10:42:31
479
原创 【程序优先级调整】USB 取流线程优先级的动态调整
实现 USB 取流线程优先级的动态调整,同时保证软件卸载后不影响优先级的改变,需要综合考虑操作系统的线程调度机制和用户权限管理。
2024-12-10 16:45:32
715
原创 【USB协议】HID 和 CDC协议特点对比
对于MR串流的高带宽需求,CDC协议明显更优;而如果仅涉及少量控制信号传输,可以同时搭配HID协议使用,以实现实时控制。
2024-12-10 10:04:28
704
原创 【C++】undefined reference to `xxx_function’”的错误
既然编译是说没有定义某个函数,所以我们先看看这个函数是哪一个库实现的。直接搜索编译环境的include目录,看看 xxx_function 这个函数是定义到哪一个头文件,再看看这个函数是哪个源文件实现并编译为库。
2024-11-22 12:58:50
656
原创 【SchurVins】核心核心改进与代码解析
总结来说,SchurVINS通过引入Schur补码和改进的地标求解器,实现了在高精度定位和低计算复杂性方面的显著提升。这与SVO2.0中使用的基于GN的地标求解器相比,能够在保证高精度的同时降低计算复杂性。:SchurVINS在消融研究中表现出色,即使在没有GN或基于EKF的地标求解器的情况下,SchurVINS也能够限制全局漂移,并且在某些挑战场景中避免系统发散。:SchurVINS利用Schur补码技术将完整模型分解为自我运动残差模型和地标残差模型,从而在保持高精度的同时降低计算复杂性。
2024-11-21 09:48:34
319
2
原创 【Dynamic-SLAM】 动态视觉SLAM
但这里有个问题,本身RigidMask是需要图像、场景流、位姿做为输入的,所以DytanVO的主要思想是进行运动分割和位姿解算的联合优化,也就是说将RigidMask输出的优化后的光流分割结果馈送给PoseNet,PoseNet生成的位姿又反过来优化RigidMask的动态物体分割性能,论文里提到迭代3次以后可以收敛,注意光流网络只需要前向推理一次。总体结构如图2所示。具体来说,作者修改了现有的主干网络,以学习更强大的对象特征表示,并在主干网络中部署了两次查看和思考的机制,提升了实例分割的性能。
2024-10-16 05:16:26
3276
原创 【Motion Plan】路径规划算法小结
路径规划是自动驾驶和机器人导航中的一个关键环节,它可以根据对环境信息的掌握程度被划分为两种主要类型:全局路径规划和局部路径规划。这两种规划方式在信息获取、规划策略和应用场景上有所不同。全局路径规划:局部路径规划:在实际应用中,全局路径规划和局部路径规划往往需要结合使用。全局路径规划可以提供一个大致的路径方向,而局部路径规划则负责在接近目标的过程中,根据实时环境信息进行路径的细化和调整。这种组合使用的方法可以提高导航系统的鲁棒性和适应性。通过结合全局和局部算法,仓储机器人能够灵活应对各种环境需求,平衡路径规划
2024-10-16 00:06:03
1239
原创 【2D/3D-Lidar-SLAM】 Cartographer详细解读
初始化best_score初始化为负无穷大,用来记录当前找到的最佳匹配分数。遍历平移和旋转参数使用三个嵌套的循环,分别遍历水平方向(j_x)、垂直方向(j_y)和旋转方向(j_θ)的参数空间,从而在各个可能的平移和旋转组合中搜索。计算匹配分数在每个平移和旋转组合下,计算一个匹配分数score,它是通过某个函数M_nearest对所有K个匹配点的距离求和得到的。更新最佳匹配如果当前计算的score比best_score更好,则更新best_score,并记录当前的匹配参数match。返回结果。
2024-10-15 03:38:42
539
原创 【2D/3D-Lidar-SLAM】 2D/3D激光SLAM以及GMapping 与 Cartographer
1. 激光SLAM分类**1. GMapping 系统架构**1.1 **粒子滤波器(Particle Filter)**1.2 **运动模型(Motion Model)**1.3 **传感器模型(Sensor Model)**1.4 **地图更新(Map Update)**1.5 **重采样(Resampling)**1.6 **闭环检测(Loop Closure)****2. GMapping 的特点**2.1 **基于粒子滤波器的 SLAM**2.2 **高效的 2D 建图**2.3 **实时性**
2024-10-15 03:26:25
1690
原创 【3dgs】Gaussian-SLAM发展关键历程梳理
Gaussian-SLAM: Photo-realistic Dense SLAM with Gaussian Splattingcode:概述:3D 高斯泼溅(Splatting)是用于实时辐射场渲染的 3D 高斯分布描述的一种光栅化技术,它允许实时渲染从小图像样本中学习到的逼真场景。基本原理:从已有的点云模型出发,以每个点为中心,建立可学习的3D高斯表达(椭球来表示三维点,参数包括中心位置、不透明度、协方差矩阵和用球谐函数表达的颜色),用Splatting的方法进行渲染,实现高分辨率的实时渲染。引
2024-10-12 14:24:55
1767
原创 【3dgs】总结3DGS与NeRF如何重塑SLAM(24年4月最新进展)
1. 摘要2. 简洁3. 背景3.3.1 NeRF3.3.2 3dgs3.4 数据集4 数据集4.1 SLAM3.1 RGB-D SLAM方法3.1.1 基于NeRF风格的RGB-D SLAM3.1.2 基于3DGS风格的 RGB-D SLAM3.1.3 基于子图的SLAM(Submaps)paper:SLAM领域的研究经历了重大变革,突显了其在实现未知环境的自主探索方面的关键作用。
2024-10-11 06:19:47
1829
原创 【3dgs】3DGS与NeRF对比
3DGS适用于需要显式几何信息实时处理以及精确测量的应用,如自动驾驶、工业检测、机器人视觉等。NeRF强调高质量渲染,适用于渲染复杂场景和生成逼真图像的应用,如电影特效、虚拟现实、虚拟旅游等场景,渲染效果优于几何精度。这两种方法各有所长,适合不同的应用需求。如果你需要精确的几何信息和实时处理,选择3DGS;如果需要逼真的场景渲染和处理复杂光照,NeRF则是更好的选择。
2024-10-09 05:01:41
2809
原创 【FAST-LIO2】FAST-LIO2论文详解
本文介绍了FAST-LIO2:一种快速、鲁棒的、通用的激光雷达惯性里程计框架,FASTLIO2以高效紧耦合的方式迭代卡尔曼滤波器为基础,具有两个关键的新颖之处,可实现快速、稳健和精确的激光雷达的建图和导航。第一该方法是直接将原始点云配准到地图(随后更新地图),而不提取特征,这样可以利用环境中的细微特征,从而提高准确性,这里不采用人工设计的特征提取模块,使其自然适应不同扫描模式的新兴激光雷达;第二个主要创新点是通过。
2024-10-01 05:18:49
2016
原创 【Fast-LIO系列】Fast-LIO、Fast-LIO2、Faster-LIO系列特点分析
而ikd-Tree在point-wise和block-wise,通过对结点新加了deleted, treedeleted, pushdown,treesize, invalidnum属性,进而减小了插入,删除,检索,re-insert的时间复杂度,并达到增量更新的目的;并且能够通过设置的参数,检测到二叉树不平衡时,进行重建。,这样做的好处是原本公式中求逆中的矩阵是观测维度的,新公式求逆中的矩阵是状态维度的,需要求逆H的矩阵维度减小了(因为在实际情况中,激光特征点的数量维度要远大于状态量的维度)
2024-10-01 00:07:00
1627
原创 【LIO-SAM】LIO-SAM论文翻译(2020年)
提出了一种通过平滑和映射实现紧密耦合的激光雷达惯性里程计框架 LIO-SAM,该框架可实现高精度、实时的移动机器人轨迹估计和地图构建。LIO-SAM 在因子图上制定激光雷达惯性里程计,允许将来自不同来源的大量相对和绝对测量(包括回环)作为因子纳入系统。惯性测量单元 (IMU) 预积分估计的运动消除了点云的倾斜,并为激光雷达里程计优化产生了初始猜测。获得的激光雷达里程计解决方案用于估计 IMU 的偏差。为了确保实时高性能,我们将旧的激光雷达扫描边缘化以进行姿势优化,而不是将激光雷达扫描与全局地图匹配。
2024-09-24 00:06:10
1204
原创 【SVD/最小二乘/LM】SVD分解,最小二乘与EKF
计算ATAA^T AATA和AATA A^TAAT的特征值和特征向量。构造奇异值矩阵 ( \Sigma )。将矩阵 ( A ) 分解为UΣVTUΣVT。SVD算法的应用非常广泛,例如PCA(主成分分析)、图像压缩等场景中,都是基于SVD的思想。
2024-09-23 23:01:43
1235
原创 【2D/3D-Lidar-SLAM】 激光slam理论与实践
分枝定界算法(Branch and Bound)在激光雷达(LiDAR)匹配中是一种用于解决优化问题的方法,尤其是在回环检测和路径规划中。这种方法通过系统地探索所有可能的解决方案空间,并在探索过程中剪枝不具有最优性的分支,从而找到最优解。
2024-09-23 21:45:39
1191
原创 【LVIO-SLAM】Mars 实验室研究:FAST-LIO、FAST-LIO2、MLCC、HBA、Livox Camera Calibration
总体而言,FAST-LIO2在计算效率上(例如,在大型室外环境中实现高达100 Hz的里程计和制图)、鲁棒性(例如,在旋转速度高达1000度/秒的复杂室内环境中可靠的位姿估计)、多功能性(即,适用于多线旋转和固态激光雷达、无人机和手持平台,以及基于Intel和ARM的处理器)方面表现出色,同时仍然实现了比现有方法更高的精度。FAST-LIO2 进一步优化了数据处理流程,简化了特征提取的步骤,使其能够更加稳定地运行在不同种类的LiDAR设备上,尤其适用于低成本的激光雷达设备,在保证实时性的同时提高了精度。
2024-09-23 03:05:11
2213
原创 【GVINS】
概述了一种名为GVINS的系统,它旨在解决视觉-惯性里程计(VIO)在长时间运行时出现的漂移问题。GVINS通过将全球导航卫星系统(GNSS)的原始数据(包括伪距和多普勒频移)与视觉和惯性数据相结合,使用因子图方法进行紧耦合,从而减小VIO系统的漂移。这些信息表明GVINS系统能够提供一种更稳定和可靠的导航解决方案,特别是在卫星信号不稳定或缺失的情况下。这些内容指出了在GVINS与VIN融合时可能遇到的挑战和限制,特别是在精度匹配、卫星数量和信号覆盖方面。
2024-09-20 20:54:50
419
原创 【DL】 Deep Learning Papers Translation(CV)
AlexNetImageNet Classification with Deep Convolutional Neural Networks中文版中英文对照VGGVery Deep Convolutional Networks for Large-Scale Image Recognition中文版中英文对照ResNetDeep Residual Learning for Image Recognition中文版中英文对照GoogLeNetGoing Deeper With Convol
2024-09-18 06:53:03
784
原创 【FAST-LIO】FAST-LIO论文详解
提出 FAST-LIO,一种计算效率高且稳健的 LiDAR-惯性里程计框架,采用紧耦合迭代卡尔曼滤波器。使用前向和后向传播来预测状态并补偿 LiDAR 扫描中的运动。此外证明并实现了一个等效公式,该公式可以大大降低卡尔曼增益计算的复杂度。FASTLIO 在无人机飞行实验中进行了测试,在具有大旋转速度的室内环境和室外环境中具有挑战性。在所有测试中,我们的方法都产生了精确、实时和可靠的导航结果。
2024-09-17 00:20:39
2070
原创 【XR】AR HUD
产业链上的各大Tier1及PGU企业都在积极开发这一技术,许多厂家已推出LCOS样机,比如说水晶光电、华阳集团、瀚思通、疆程已在北京车展或去年的上海车展上展出了LCOS方案的AR-HUD样机。长距离显示模糊和快速转弯时显示模糊是AR HUD系统中常见的问题,这些问题的出现通常与HUD系统的光学设计、投影技术、用户视角变化以及环境因素有关。:随着技术的发展,用户对HUD系统的尺寸和重量有更高的要求,这要求研发更小型化的投影和成像系统。:确保HUD硬件在长期使用中的可靠性和耐用性,尤其是在恶劣的环境条件下。
2024-09-14 19:27:59
2323
Pytorch学习记录分享13-OCR(Optical Character Recognition,光学字符识别)
2024-01-04
mnist 用于手写体训练与测试,这里包含完整的链接
2023-12-21
SuperPointPretrainedNetwork.zip
2023-10-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人