网站开发大赛,江苏集团网站建设,wordpress变微软雅黑,焦作集团网站建设LiDAR SLAM 其主要思想是通过两个算法#xff1a;一个高频激光里程计进行低精度的运动估计#xff0c;即使用激光雷达做里程计计算两次扫描之间的位姿变换#xff1b;另一个是执行低频但是高精度的建图与校正里程计#xff0c;利用多次扫描的结果构建地图#xff0c;细化位…LiDAR SLAM 其主要思想是通过两个算法一个高频激光里程计进行低精度的运动估计即使用激光雷达做里程计计算两次扫描之间的位姿变换另一个是执行低频但是高精度的建图与校正里程计利用多次扫描的结果构建地图细化位姿轨迹。
LOAM 论文Lidar Odometry and Mapping in Real-time(RSS2014) Ji Zhang
LOAM使用了作者定义的特征点提取和匹配方法主要去边角点和平面点。LOAM use a new defined feature system (corner and flat point), for the detail see its article. LOAM假设每一次激光扫描过程中是匀速运动工程应用时要注意实际载体运动特性并且用这个假设修正激光雷达数据的运动扭曲问题。在VLOAM中则是更进一步使用视觉的里程计估计每一个扫描数据的运动。LOAM suppose linear motion within the scan swap (VLOAM further uses visual odometry to estimate it), and undistort the lidar points. LOAM也有一个低频率调用的全局优化线程。
LOAM一文中提出可以通过IMU进行辅助。所谓“辅助”就是在激光雷达两次扫描之间利用IMU得到较为准确的变化轨迹从而进行点云畸变的去除从而不需要靠上次扫描获得的运动参数插值对这次的畸变进行去除能够提升精度。但IMU的数据并没有参与到优化当中所以IMU在LOAM算法中只起到了辅助作用
A-LOAM 代码https://github.com/HKUST-Aerial-Robotics/A-LOAM香港科技大学秦通博士
A-LOAM代码通过ROS运行。在LOAM原有代码基础上使用Ceres-solver和Eigen库对其进行重构和优化在保持原有算法原理的基础上使其可读性大大增加。 主要区别 1.LOAM中提供了使用IMU信息修正的接口 A-LOAM中省略了这一块。 2.A-LOAM中缺少了对提取到的特征点的筛选过程具体可以参见LOAM的代码部分对一些不好的边角点做了筛选。 3.LOAM中作者解析地求出了雅各比的表达式其中使用了一些小技巧统一了不同特征点的残差函数的导数表达A-LOAM则是简单地使用了ceres提供的自动求导工具这样可以节省开发的时间得到了也是准确的解但是运算时间会稍稍长些具体可以参见ceres的官方文档。
LeGO-LOAM LeGO-LOAM:LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain .Tixiao Shan and B. Englot, IEEE/RSJ International Conference on Intelligent Robots and Systems, 2018.
LeGO-LOAM 是Tixiao Shan在原有LOAM基础上做了一些改进包括:1、对前端里程计的前量化改造提取地面点更适配水平安装的LiDAR; 2、使用SLAM中的Keyframe概念以及回环检测位姿图优化的方式对后端进行重构。
从文章名称可以看出LeGO-LOAM相对于LOAM的提升主要在于轻量级和地面优化。接下来我将从论文的整体框架入手详解介绍LeGO-LOAM和LOAM的区别和联系。 核心四个部分分割特征提取雷达里程计雷达建图。
分割模块通过对一帧的点云重投影到图像中进行地面分割非地面点被分割出来 特征提取模块基于分割后的点使用和LOAM一样的方法提取边缘点和平面点 雷达里程计模块基于提取的特征点构建约束关系使用两次LM优化得到姿态变换矩阵 雷达建图模块将得到的特征点进一步处理构建 的约束关系构建全局地图。 GTSAM
GTSAMGeorgia Tech Smoothing and Mapping是基于因子图的C库它由佐治亚理工学院的教授和学生们创造。它可以解决slam和sfm的问题当然它也可以解决简单或者更加复杂的估计问题。 因子图是一种图模型非常适合于复杂的估计问题的建模比如SLAM或者是SFM( Structure from Motion)。
因子图的三个基本组成部分 因子图factor graph它属于一个二分图由因子和变量连接而成。 变量variables估计问题中的未知随机变量。 因子factors非线性因子表示变量之间的约束在slam中可能为landmark或者odometry的读数。
LIO-Mapping LIO-MappingTightly Coupled 3D Lidar Inertial Odometry and Mapping,H. Ye, Y. Chen, and M. Liu,IEEE International Conference on Robotics and Automation, pp. 3144-3150, 2019.
主要是借鉴LOAM和VINS-Mono的思想进行联合状态估计工程层面和VINS-Mono一样只不过是前端视觉部分换成了Lidar的前端进行特征关联这是第一篇开源的Lidar-IMU紧耦合SLAM算法。
见《https://blog.csdn.net/weixin_44580210/article/details/120541054》
LIO-SAM LIO-SAM: *Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping.Tixiao Shan, Brendan Englot, Drew Meyers, Wei Wang, Carlo Ratti, and Daniela Rus.*2020
LIO-SAM 是Tixiao Shan在LeGO-LOAM的扩展添加了IMU预积分因子和GPS因子前端使用紧耦合的IMU融合方式替代原有的帧间里程计使得前端更轻量后端沿用LeGO-LOAM在此基础上融入了GPS观测。同时前端后端相互耦合提高系统精度。
LIO-SAM中的扫描匹配优化部分代码是直接套用LOAM该部分代码的最大特点是没有利用任何开源的优化库(ceres-solver, g2o, gtsam…)进行残差方程的优化而是只基于Eigen库构造了高斯牛顿迭代算法对残差方程进行优化获得最小二乘解但是为了提升对后端残差方程优化的理解抛弃开源优化库只利用Eigen库构造优化过程是一个非常推崇的做法
该算法是一个紧耦合的雷达惯导里程计Tightly-coupled Lidar Inertial Odometry借助的手段就是利用GT-SAM库中的方法。提出了一个利用GT-SAM的紧耦合激光雷达惯导里程计的框架。实现了高精度、实时的移动机器人的轨迹估计和建图。
框架的构成 通过相对观测两帧间的估计及绝对观测GPS还包括回环检测构成因子图。
这个框架必须要有激光雷达和IMU。可以没有回环和GPS。
IMU的作用 用IMU的数据对激光雷达点云作畸变矫正为激光雷达里程计的优化提供一个初值
系统对IMU的作用 获得的雷达里程计会用来估计IMU的零偏bias
点云匹配建图方式 为了保障性能和实时并不是将激光雷达一帧数据和全局地图进行匹配而是和经过边缘化的历史地图进行匹配这种当前帧和局部地图配置而不是全局地图的做法可以显著提高系统的实时性。
局部地图构成 通过选取关键帧的方式利用滑窗的方法将当前的关键帧和历史尺度和大小一致的子关键帧集合配准。
cartographer 谷歌于2016年开源了Cartographer的SLAM库。Cartographer可以使用2D或3D激光雷达来进行SLAM同时定位与地图构建用Grid2D/3D的形式建地图局部匹配直接建模成一个非线性优化问题通过IMU惯性测量单元陀螺仪获得比较靠谱的初值再用Ceres库进行求解后端用Graph来优化用分支定界算法来加速2D和3D的问题统一在一个框架下解决。
cartographer主要解决室内问题LOAM室内外都可以但是没有回环检测。Cartographer的3D部分更像是2D的扩展即用2D的思路去做3D的事情。而LOAM则主要解决3D问题其核心思路难以解决2D问题。
Cartographer基本上实现了低成本雷达低计算资源消耗实时优化精度尚可。