0. 简介 对于最近出来的Point-LIO(鲁棒高带宽激光惯性里程计),本人还是非常该兴趣的,为此花了一些时间重点分析了Point-LIO的代码,并研究了它相较于Fast-LIO2的区别 1. laserMapping.cpp 第一部分就是实现对激光雷达视场角的图像分割。首先定义了一个BoxPointType类型的局部地图(LocalMap_Points)和一个bool类型的变量(Lo
0. 简介 在我们之前接触的算法中,基本上都是要处理帧间雷达畸变的,类似于VSLAM系统,频率固定(例如10Hz), 而实际上,激光雷达点是按照不同的时间瞬间顺序采样的,将这些点累积到帧中会引入人工运动畸变,并且会对地图结果和里程计精度产生负面影响。低帧率还会增加里程计的延迟并限制可达带宽,其中里程计带宽类比于动态系统的带宽,即系统增益下降到0.707的频率。里程计带宽表示运动速度可以多快,里程
0. 简介 我们在使用PCL时候,常常不满足于常用的降采样方法,这个时候我们就想要借鉴一些比较经典的高级采样方法。这一讲我们将对常用的高级采样方法进行汇总,并进行整理,来方便读者完成使用 1. 基础下采样 1.1 点云随机下采样 点云下采样是对点云以一定的采样规则重新进行采样,目的是在保证点云整体几何特征不变的情况下,降低点云的密度,进而可以降低相关处理的数据量和算法复杂度。随机下采样顾名
0. 简介 在此之前博主对Fast-LIO2和R3LIVE进行了系统性的学习。最近文章《Fast and Tightly-coupled Sparse-Direct LiDAR-Inertial-Visual Odometry》提出了FAST-LIVO,这是一种快速LiDAR惯性-视觉里程计系统,它建立在两个紧耦合的直接里程计子系统之上:VIO子系统和LIO子系统。LIO子系统将新扫描的
0. 简介 上一节中,我们过完了VIO中的状态预测以及特征点跟踪部分。此时我们已经拿到了光流的特征点信息,而这部分越来越接近我们想要去讲的帧到帧的VIO部分了。这一节,我们将围绕着VIO部分来进行讲解 1. PNP误差更新 我们从之前的博客《经典文献阅读之—R3LIVE》了解到,帧到帧的VIO是将三维地图点投影到上一个图像帧获取二维座标然后通过LK光流法获取到在当前帧的二维坐标,然后可以通过
0. 简介 在上一章中,我们过完了主函数以及LIO的操作,由于这部分代码在FAST-LIO2中已经充分详细的介绍过了,所以说这里在R3LIVE中就不过多介绍了,下面我们来看一下本系列的重点,即VIO部分。 1. 主函数 我们在之前分析过,R3LIVE主要的公式推导在VIO上,所以我们来细细的分析这部分的功能。首先我们在之前的博客《经典文献阅读之—R3LIVE》提到,R3LIVE将VIO分成了
0. 简介 我们在上文中提到R3LIVE主要由两个node节点所依赖的cpp文件组成,我们在上一节中完成了r3live_LiDAR_front_end 简单介绍,下面我们需要详细的看/r3live_mapping这个节点。这个节点也是我们R3LIVE的核心。 1.主函数进入 首先我们知道R3LIVE的主函数进入在r3live.cpp这个文件夹中,其中cpp文件中没有很多值得关注的东西。基本是
0. 简介 之前我们立了一个Flag,就是要对R3LIVE进行详细的分析,当时就提到R3LIVE作为一个非常经典的文章,和LVI-SAM一样都是一种激光—惯性—视觉结合的SLAM算法。对于R3LIVE而言结构还是挺清晰的,比如IMU,相机,激光雷达三个传感器分别的作用。下面我们来梳理一下整个R3LIVE算法的流程以及代码理解。 1. 前言 我们先来看一下代码多少钱一两博主绘制的节点与话题的绘
0. 简介 上一节我们将while内部的IKD-Tree部分全部讲完,下面将是最后一部分,关于后端优化更新的部分。 1. 迭代更新 最后一块主要做的就是,拿当前帧与IKD-Tree建立的地图算出的残差,然后去计算更新自己的位置,并将更新后的结果通过map_incremental函数插入到由ikd-Tree表示的映射中。 // 外参,旋转矩阵转欧拉角 V3D ext
0. 简介 上一节我们将主函数部分while外面的部分给讲完了,下面我们将深入while来学习里面的知识 1. 主函数while内部的eskf前馈 这部分是我们while内部前面的部分,内部的操作在前面几节中我们已经详细分析过了。 while (status) { // 如果有中断产生,则结束主循环 if (flg_exit)
0. 简介 之前作者在今年年初写了激光与摄像头混合的博客《从LVI-SAM来看激光与视觉的紧耦合系统》,当时一直想写R3LIVE的。但是一直苦于没有时间好好地去深入钻研探索。这段时间正好有比较充裕的时间做这个事情,所以这里我们对《R3LIVE: A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled stat
0. 简介 在讲完前面三节后我们将开始以主函数触发,并分析ESKF和IKD-Tree中对应的算法。其中ESKF作为主要的部分来进行展开介绍 1. 主函数 作为主函数,内部主要存放了一系列的参数传入,这部分没什么好说的基本都已经注释完成。 x // FAST_LIO2主函数 int main(int argc, char **argv
0. 简介 在讲述完一,二后IMU和雷达的数据输入算是讲明白了,下面几节我们将结合主程序来介绍本文最关键的迭代卡尔曼滤波器和iKD-Tree的算法。 1. 主程序 一开始在laserMapping.cpp主程序中定义了一系列待使用的变量定义,包含了ESKF和IKF-Tree的定义 #define INIT_TIME (0.1) #define LASER_POINT_COV (0.001
0. 简介 在上文中讲述了激光雷达的数据获取以及特征点提取的操作,这一节我们将围绕着IMU_Processing这一节来进行介绍。 1. ImuProcess类定义 在ImuProcess.hpp中,一开始就是完成了对ImuProcess类的申明,里面我们可以看到在imu中最主要的还是角速度和加速度这两项特征,这与视觉SLAM的imu融合非常相似。 //判断点的时间是否先后颠倒 cons
0. 简介 现在越来越多的激光雷达方法如雨后春笋一般冒了出来,最近以FAST-LIO为代表的系列渐渐地被大众接受。而FAST-LIO2的工作越来越被大众所熟知与研究。最近作者也在研究与学习FAST-LIO2的相关知识,这里将会以长文的形式来介绍FAST-LIO2.0的学习心得。本文将通过代码的形式与论文结合,直观的来分析论文的核心算法部分。也同时作为自己的学习笔记来留给后来人学习。 1. 激光
0. 简介 继LLOAM后,三维SLAM迎来了蓬勃的发展,最近一只FAST-SLAM为代表的3D-SLAM迎来了蓬勃的发展,FASTER-LIO也可以看到国内知名SLAMer高博的影子。为此我们来看一下FAST-SLAM这类SLAM算法的优势在哪里。 1. FAST-LIO 首先我们需要先明白FSAT-LIO相较于其他的LIO好处在哪里: 将IMU和Lidar特征点紧耦合在一起 使用
博客
泡泡
积分
勋章
精选代码浅析Point-LIO
经典文献阅读之--Point-LIO(鲁棒高带宽激光惯性里程计)
PCL中常用的高级采样方法
经典文献阅读之--FAST-LIVO(Fast-LIO系列的激光视觉惯性里程计)
R3LIVE代码详解(四)
R3LIVE代码详解(三)
R3LIVE代码详解(二)
R3LIVE代码详解(一)
FAST-LIO2代码解析(六)
FAST-LIO2代码解析(五)
经典文献阅读之--R3LIVE
FAST-LIO2代码解析(四)
FAST-LIO2代码解析(三)
FAST-LIO2代码解析(二)
FAST-LIO2代码解析(一)
FAST-LIO,FAST-LIO2与FASTER-LIO
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信