本文介绍的LeGO-LOAM同样是针对LOAM计算效率问题的优化,针对地面移动机器人在室内外环境下运行时的特点,针对性的对LOAM进行优化和改进,实现了一套轻量级的激光雷达SLAM系统。该工作由Shan Tixiao完成,论文LeGO-LOAM: Lightweight and Ground-Optimized LiDAR Odometry and Mapping on Variance Terrain发表于2018年IROS会议...
LeGO - LOAM是轻量级的,可以在嵌入式系统上实现实时位姿估计和建图。进行点云分割,丢弃地面分离后可能代表不可靠特征的点。LeGO - LOAM也是地面优化的,因为我们引入了两步优化来进行位姿估计。在第一步中,从地面提取的平面特征用于获取 [t_z,\theta_{roll},\theta_{pitch}] 。在第二步中,进行其余的转化 [t...
gtsam::Vector robustNoiseVector3(3); // gps factor has 3 elements (xyz) robustNoiseVector3 << bigNoiseTolerentToXY, bigNoiseTolerentToXY, gpsAltitudeNoiseScore; // means only caring altitude here. (because LOAM-like-methods tends to be asymptotically flyging) robustGPSNoise = gtsam::noiseMo...
LeGO-LOAM全称为:Lightweight and Groud-Optimized Lidar Odometry and Mapping on Variable Terrain,从标题可以看出 LeGO-LOAM 为应对可变地面进行了地面优化,同时保证了轻量级。 LeGO-LOAM是专门为地面车辆设计的SLAM算法,要求在安装的时候Lidar能以水平方式安装在车辆上;如果是倾斜安装的话,也要进行位姿转换到车辆上。
在本文中,我们将对Lego-LOAM的地面点分离、聚类和两步优化方法进行深入探讨。 一、地面点的分离 在激光雷达数据中,地面点和非地面点的分离是SLAM算法中的关键步骤,而Lego-LOAM采用了一种基于分段式的分离方法。该方法首先将激光雷达数据根据水平线和垂直线进行分段,然后利用线性模型拟合每个分段的点云,找出最适合的...
简介:**LeGO-LOAM**的全称是 Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain其中LeGO就是轻量级和利用地面优化,轻量级的实现就是通过两步的优化方式,利用地面优化的部分也在两步优化的第一步中。和原始LOAM一样,通过前后两帧点云来估计两帧之间的运动,从而累加得到前端里程计的输...
相比于F-LOAM, LeGO-LOAM不仅整合了LOAM的系统结构,同时对LOAM中的特征提取、位姿估计计算都进行了优化改进,此外还加入了闭环检测和全局优化,将LOAM这一LO系统构建为完整的SLAM系统,整体工作的创新性和完整性都更加突出。 1、主要创新点及系统架构1.1 主要创新点 ...
LeGo-Loam是基于ros系统框架的3D激光slam开源代码。代码简洁,其中大量计算都是手动推导出来,依赖库相对较少,主要依赖gtsam进行后端因子图优化。其中在前端里程计计算中,通过地面特征和线特征分开来计算机器人姿态,减少计算量,提高前端计算效率。其系统框架如下图: 相对于LOAM算法,LeGo-LAOM能够进行地面优化,同时保证了轻...
mapOptimization函数是LEGO-LOAM算法中的一个关键函数,用于进行建图和位姿优化的迭代优化过程。下面详细解释mapOptimization函数的主要步骤: 1.匹配点云:首先,输入的点云数据将分为地图点云和当前帧点云。mapOptimization函数将对当前帧点云进行特征提取,并与地图点云进行匹配,以估计当前帧的位姿。 2.匹配点云滤波:为...
因子图是一个全局优化框架,如果需要做回环约束可以通过添加node i和node j之间的loop factor。问题里面...